Javascript 精确小数计算有问题,附上图

Javascript 算数遇到问题,
精确到小数两位,参与运算,要求结算正确,
运行结果如下图没报错,为什么看着是算错了,

img

尝试将100替换成1000再除以10,可拿到正确结果,那有没有最好的方法呢

浮点数精度丢失问题,一般编程语言都有这个情况,解决方法是:

<script type="text/javascript">
var a = 20.33*100;
var b = Math.round(a*10000)/10000;
console.log(b);
</script>



因为20.33是浮点类型,计算过程中会存在精度丢失。
一般先转为整型计算,然后再将结果转回浮点类型。

这个是浮点数精度丢失问题,所有编程语言都有这个情况,你可以看看相关解决方案:
https://www.cnblogs.com/snandy/p/4943138.html

在Js中存在精度问题!比如0.1➕0.2是不等于0.3的!建议博主可以去看看有关精度问题的资料!这也是面试题经常会问到的!

简单处理办法就是 拿计算的结果进行四舍五入不保留小数

可以用decimal.js来解决js种计算结果精度问题
http://mikemcl.github.io/decimal.js/

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632