js浮点数计算精度问题
js
// 加法
0.1 + 0.2 = 0.30000000000000004
0.7 + 0.1 = 0.7999999999999999
0.2 + 0.4 = 0.6000000000000001
// 减法
1.5 - 1.2 = 0.30000000000000004
0.3 - 0.2 = 0.09999999999999998
// 乘法
19.9 * 100 = 1989.9999999999998
0.8 * 3 = 2.4000000000000004
35.41 * 100 = 3540.9999999999995
// 除法
0.3 / 0.1 = 2.9999999999999996
0.69 / 10 = 0.06899999999999999
// chrome上toFixed函数存在bug
1.335.toFixed(2) // 1.33 错误
1.3335.toFixed(3) // 1.333 错误
1. 解决方案一
使用第三方库进行计算,例如Big.js
2. 解决方案二
通过字符串操作去掉浮点数里的.
,然后进行整数的运算