0.18+0.72=0.8999999999 …
简单代码演示
// 不采取任何措施的时候
var result = 0.18+0.72;
console.log("0.18+0.72="+result)
查阅资料
参考原博文点击这里直接跳转
js计算时,会将十进制转换成二进制,再进行计算,但有些小数转换成二进制时候,出现了无限循环,由于位数有限,所以就出现了截取,所以就导致了再转化成十进制后结果的不精确.所以就出现这种情况。
解决方案(引入使用math.js)
- 如下在前端页面添加math.js
// 引入
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/3.14.2/math.min.js"></script>
- 使用math中方法,此处仅举例加法
// 使用math.js里的方法进行计算
var result = math.number(math.add(math.bignumber(0.18),math.bignumber(0.72)));
console.log("0.18+0.72="+result)