在小数相加时,可能会产生多个小数位。如下所示:
var x=1+1; //2
var x=1.20+1.11; //2.31
var x=1.56+1.76; //3.3200000000000003
导致上述原因是因为Javascript的数字类型是以64位的IEEE 754格式存储的。在用的时候一定要小心,测试要到位。
解决方法:
加上toFixed()函数就可以把函数控制在想要的小数位以内,具体语法如下:
var x=1+1; //2
var x=1.20+1.11; //2.31
var x=1.56+1.76; //3.3200000000000003
x.toFixed(2); //3.32
参考:
toExponential() | 把对象的值转换为指数计数法。 |
toFixed() | 把数字转换为字符串,结果的小数点后有指定位数的数字。 |
toPrecision() | 把数字格式化为指定的长度。 |