欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决JS中浮点数乘法错误问题

程序员文章站 2024-03-25 11:28:52
...

 解决JS中浮点数乘法错误问题

 

alert(39.2*3);

我们直接结算,随后输出:

117.60000000000001

对于浮点数乘法出现计算错误,我们的解决思路就是*10,然后把结果/10

alert(39.2*10*3/10);

 

这样结果就正确了。

在网上找到的解释是:

 java和JavaScript中计算小数运算时,都会先将十进制的小数换算到对应的二进制,一部分小数并不能完整的换算为二进制,这里就出现了第一次的误差。待小数都换算为二进制后,再进行二进制间的运算,得到二进制结果。然后再将二进制结果换算为十进制,这里通常会出现第二次的误差。要避免这种情况呢,通常可以将小数同时扩大相同10的整倍数,完成计算后,在去掉之前添加的整倍数。

相关标签: 大前端爬坑之路