JS精度问题 乘以10的N次方出现精度问题

老问题了,不多说
相对于其他文章,本文的不同点是 发现了这个问题:

小数乘以10的N次方也可能出现精度问题。

例如: 17881.33*100 = 1788133.0000000002
鉴于此,其他方法在化整时也应进行toFixed()

先乘后除法 建议在10万级以下,两位小数下使用。

下面这块节选很优秀,直接搬过来了~

首先考虑的是如何解决浮点数运算的精度问题,有3种思路:
1.四舍五入法: 考虑到每次浮点数运算的偏差非常小(其实不然),可以对结果进行指定精度的四舍五入,比如可以parseFloat(result.toFixed(12));
2. 先乘后除法: 将浮点数转为整数运算,再对结果做除法。比如0.1 + 0.2,可以转化为(1*2)/3。 把浮点数转化为字符串,模拟实际运算的过程。
3.使用成熟的库:把浮点数转化为字符串,模拟实际运算的过程。

参考文章:
js中精度问题以及解决方案

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值