理论上用有限的空间来存储无限的小数是不可能保证精确的,但我们可以处理一下得到我们期望的结果
当你拿到 1.4000000000000001 这样的数据要展示时,建议使用 toPrecision 凑整并parseFloat转成数字后再显示,如下:
parseFloat(1.4000000000000001.toPrecision(12)) === 1.4 // True
封装成方法就是:
function strip(num, precision = 12) {
return +parseFloat(num.toPrecision(precision));
}
bignumber.js 也可
文章探讨了JavaScript中数字精度丢失的问题,并提供了处理方法。当遇到类似1.4000000000000001的不精确数值时,建议通过凑整并转换为数字来展示,以确保显示的准确性。还介绍了一个用于解决此类问题的封装方法。
1217

被折叠的 条评论
为什么被折叠?



