JavaScript浮点数运算精度问题解决方法0.1+0.2!=0.3
2021年6月25日
JavaScript精度问题在项目中经常遇到,最近也是遇到了这样的问题,0.1+0.2!==0.3 才准备好好的总结下这类问题的解决方法。
JavaScript产生这类精度问题的原因
在JavaScript中所有的数值都是以IEEE-754标准的64bit双精度浮点数进行存储的
比如:0.1+0.2的运算过程
1 | // 计算过程 |
0.01001100110011001100110011001100110011001100110011001110转化为十进制就是0.30000000000000004
方案一:
第三方库:mathjs
以上的config对象的number属性设置为BigNumber就可以解决此类精度问题(运用的话去看第三库文档:https://mathjs.org/)
方案二:
toFixed方法
0.1+0.2 != 0.3
(0.1+0.2).toFixed(1)