JS精度丢失问题

2023-10-06  本文已影响0人  xsmile21

今天遇到了一个有趣的事,分享给大家:


乘法:

0.28和0.29乘以100都没有达到预期的值


除法:

0.28除以100没有达到预期的值,但是0.29正常

原因:

浮点数不能直接进行相等比较,计算机中是采用近似值来保存浮点数的,当进行浮点数相关的计算时,需要时刻提防由于精度问题所导致的误差,并注意避免那些会影响到结果正确性的误差(所谓正确性,就是误差超出了所允许的最大范围)。

解决:

// 仅供元转分这种使用场景参考
parseInt(0.28 * 100 + 0.1)   // 其中加0.1是解决.29*100=28.9xxx的问题
上一篇下一篇

猜你喜欢

热点阅读