2012-09-10 34 views
0

我的JavaScript(ExtJs的4.1.0)的代码是:乘法用JavaScript

Ext.getCmp('amount').setValue(Ext.num(Ext.getCmp('unite_price').getValue()) * Ext.num(this.getValue())); 

它乘以3 0.048,其结果是0.14400000000000002而不是0.144。

为什么?

+2

的可能重复的[为JavaScript浮点数问题优雅解决方法](http://stackoverflow.com/questions/1458633/elegant-workaround-for-javascript-floating-point-number-problem) – zerkms

回答

4

由于浮点数的舍入误差。这是一个相当普遍的现象。

如果您想要3个小数点,请尝试舍入到小数点后3位。

var result = 3 * 0.048; 
var roundedResult = Math.round(result * 1000)/1000;