javascript小数乘法精确率问题
来源:互联网 发布:类似于云客宝的软件 编辑:程序博客网 时间:2024/05/01 08:42
做前端页面开发的经常会遇到数值的乘法计算,带小数位计算会出现值溢出的问题,如:
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()方法来四舍五入保留小数位。
只要乘数足够大,皆能解决!
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()方法来四舍五入保留小数位。
只要乘数足够大,皆能解决!
0 0
- javascript小数乘法精确率问题
- javascript小数乘法精确率问题
- javascript小数乘法溢出、精确率问题 toFixed(2)完美解决
- js精确小数乘法(解决精度问题)
- (小数)javascript(js)的小数点乘法除法问题
- Java 小数精确计算问题
- JavaScript js 精确、保留小数方法
- JavaScript js 精确、保留小数方法
- Javascript小数加法得到精确值
- javascript 小数加减乘除 精度问题
- 小数精确相乘
- 小数的精确表达
- JS 精确小数运算
- Java精确计算小数
- js小数精确计算
- 小数精确计算
- java小数精确计算
- javascript做浮点数运算精确问题
- 新员年终总结范文开头工年终工作总结
- Java EE eclipse 配置tomcat服务器
- android 点9PNG制作
- Midnight Commander (mc) 使用备忘
- File类文件读写函数案例
- javascript小数乘法精确率问题
- WebQQ
- 年终总结报告总经理秘书年终总结范文
- 产品经理的那些事1
- MC表-triTable
- SQL查询语句中的 limit offset
- 忘不了
- dynamic_cast
- 【数字图像处理】Canny边缘检测详解及编程实现