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()方法来四舍五入保留小数位。
    只要乘数足够大,皆能解决!
  • 相关阅读:
    记录一下周末作业
    超链接的 使用和按钮添加
    学习了网页设置上传视频
    Java-JDK安装及环境变量配置
    java-库存管理案例
    java-DateFormat
    java-正则表达式练习
    java-StringBuffer类
    java面对对象-匿名对象
    java static和final关键字
  • 原文地址:https://www.cnblogs.com/tongdengquan/p/6090511.html
Copyright © 2011-2022 走看看