>> 300+192.92 << 492.91999999999996 >> (300*100+192.92*100)/100 << 492.92
做统计汇总时,页面加和,展示出一堆的小数点。
网上查找了一下才知道好像是个精度BUG。一是说 JavaScript 浮点数计算的 Bug,另有说和计算机最终转换成二进制计算有关系,但是不是所有小数都会有这种现象。
干脆自己把它变成整数再求余了。
网上自定义算法:
//自定义加法运算 function addNum (num1, num2) { var sq1,sq2,m; try { sq1 = num1.toString().split(".")[1].length; } catch (e) { sq1 = 0; } try { sq2 = num2.toString().split(".")[1].length; } catch (e) { sq2 = 0; } m = Math.pow(10,Math.max(sq1, sq2)); return (num1 * m + num2 * m) / m; } alert(addNum(0.1, 0.2));
参见:
http://www.jb51.net/article/73043.htm