Skip to content

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. 解决方案二

通过字符串操作去掉浮点数里的.,然后进行整数的运算

苏ICP备20040768号