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。
为什么?
我的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。
为什么?
由于浮点数的舍入误差。这是一个相当普遍的现象。
如果您想要3个小数点,请尝试舍入到小数点后3位。
var result = 3 * 0.048;
var roundedResult = Math.round(result * 1000)/1000;
的可能重复的[为JavaScript浮点数问题优雅解决方法](http://stackoverflow.com/questions/1458633/elegant-workaround-for-javascript-floating-point-number-problem) – zerkms