JS jscript做小数乘法运算出现浮点错误的解决办法

在Javascript里计算小数乘法,容易出现浮点错误,例如:



输出结果:

1.4300000000000001
1.32

解决问题的思路就是,先把因数放大为整数,最后再除以相应的倍数,这样就能得到正确的结果了。解决办法如下:
1、 在算式中解决



2、添加到Number的原型方法里


使用方法:假如11*22.9,可以这样写tran(11,22.9),这样,问题就解决了。

1 Comment

 Add your comment
  1. 奇思妙想解难题:

    还是这个问题,今天用JS计算两个小数,20*2.24,结果得到的答案是44.800000000000004,这是什么啊?于是我开始怀疑上面这个解决方案的可靠性,不可否认,大部分的小数计算确实是正确的,但是今天这两组数的乘积却是错误的。

    如何解决呢,用parseInt是不行的,结果直接成了40,如果分开计算呢,分成20*2+20*0.24,经过测试,结果是正确的,于是又测了多组小数相乘,哈哈,结果都是正确的!

    实然的一个想法,却解决了一大堆代码解决不了的难题,真是高兴死我了!!

Leave a Comment

Your email address will not be published.

*