javascript小数乘法精确率问题

 时间:2026-02-12 07:54:25

做前端页面开发的经常会遇到数值的乘法计算,带小数位计算会出现值溢出的问题,如:

100

JS里做小数的乘法运算时会出现浮点错误,具体可以测试一下: <script>alert(11*22.9)</script>

结果是251.89999999999998 而不是251.9 这个问题想必有很多人为之头痛。那么如何解决呢?

网上那些经常转载来,转载去的解决方式,其实都存在弊端,先看看网上那种弊端的解决方式吧。

1、<script>alert(11*(22.9*10)/10);</script> 解决问题的大概思路就是,先把因数放大为整数,最后再除以相应的倍数,这样就能得到正确的结果了。 

其实这种方式不完全正确,虽说可以解决一部分小数的乘法问题,但是还是有特例的,比如按照这种解决思路的话,小数点后面有几位小数必须扩大10的多少次方倍,如果这个值是个动态的,岂不是显得很繁琐。

下面给出万能解决方式。 

<script>    alert(parseFloat(10000.005*10000).toFixed(2));

    //结果是10000005.00

</script> 

此处借助toFixed()方法来四舍五入保留小数位。

只要乘数足够大,皆能解决!

  • oracle环境变量怎么设置
  • eclipse配置svn
  • weblogic被管节点启动报错transport error 202
  • Windows10如何删除注册表
  • vb.net怎么使用大漠插件
  • 热门搜索
    旅游政策与法规 国家旅游局局长 凤凰古城旅游 葡萄牙旅游 新余旅游 东北旅游景点 泰国旅游指南 凯撒旅游官网 广州市旅游局 赣州旅游景点大全