一、加减法、乘法运算碰到的特殊问题。
1. 3102.66+28.99=3131.6499999999996
2. 14.7*7=102.89999999999999
在控制台输入以上计算:
3102.66+28.99=3131.6499999999996 正确:3131.65
14.7*7=102.89999999999999 正确: 102.9
2.002*1000=2001.9999999999998 正确 :2002
1105.1+928.93=2034.0299999999997 正确:2034.03
原因:
计算机储存浮点数使用的是二进制,一个十进制的有限小数,转化成二进制后可能会变成无限循环小数。
我自己的解决方法:
1.(3102.66+28.99).toFixed(2) =3131.65 取小数点后两位。
2.取整Math.round(3102.66+28.99) =3132 四舍五入取整