zoukankan      html  css  js  c++  java
  • javascript小数乘法精确率问题

    做前端页面开发的经常会遇到数值的乘法计算,带小数位计算会出现值溢出的问题,如:
    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()方法来四舍五入保留小数位。
    只要乘数足够大,皆能解决!
  • 相关阅读:
    day02
    Hive_分区排序(Distribute By)
    flink添加水位线
    SparkSQL读写JDBC
    spark累加器及UDTF
    datax同步json中文乱码问题
    mysql踩过的坑
    spark算子
    spark分区计算方式
    git操作
  • 原文地址:https://www.cnblogs.com/tongdengquan/p/6090511.html
Copyright © 2011-2022 走看看