>>  +192.92
<< 492.91999999999996
>> (*+192.92*)/
<< 492.92

做统计汇总时,页面加和,展示出一堆的小数点。

网上查找了一下才知道好像是个精度BUG。一是说 JavaScript 浮点数计算的 Bug,另有说和计算机最终转换成二进制计算有关系,但是不是所有小数都会有这种现象。

干脆自己把它变成整数再求余了。

网上自定义算法:

//自定义加法运算
function addNum (num1, num2) {
var sq1,sq2,m;
try {
sq1 = num1.toString().split(".")[].length;
}
catch (e) {
sq1 = ;
}
try {
sq2 = num2.toString().split(".")[].length;
}
catch (e) {
sq2 = ;
}
m = Math.pow(,Math.max(sq1, sq2));
return (num1 * m + num2 * m) / m;
}
alert(addNum(0.1, 0.2));

参见:

http://www.jb51.net/article/73043.htm

05-19 03:34