javascript小数乘法溢出、精确率问题 toFixed(2)完美解决

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

JS里做小数的乘法运算时会出现浮点错误,具体可以测试一下: 

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

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

1、 解决问题的大概思路就是,先把因数放大为整数,最后再除以相应的倍数,这样就能得到正确的结果了。 

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

下面给出万能解决方式。 

 

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

只要乘数足够大,皆能解决!http://www.tc5u.com

你可能感兴趣的:(javascript)