在分割然后乘以时,Actionscript舍入错误

时间:2011-10-20 10:36:15

标签: actionscript coldfusion

我在Coldfusion Flash Forms中的actionscript中执行以下操作:

90 / 3.7

给我:

24.3243243243243

计算器给了我:

24.32432432432432

注意最后的额外2。

所以当我试图通过采用24.3243243243243 * 3.7获得90的原始值然后我得到89.9999999999这是错误时,我的问题就出现了。

为什么Actionscript会截断该值,如何避免这种情况,以便我得到计算器得到的正确数量?

非常感谢。

2 个答案:

答案 0 :(得分:0)

可以在http://docstore.mik.ua/orelly/web2/action/ch04_03.htm找到ActionScript中数字的详细说明。见4.3.2.1节。浮点精度

相关报价:

“为了适应微小的差异,如果差异会对代码的行为产生负面影响,则应手动对数字进行舍入。”

答案 1 :(得分:0)

使用像这样的例程来计算您的号码

var toFixed:Function = function(number, factor) {
    return (Math.round(number * factor)/factor);
}

如果因子是10,100,1000等,一个简单的思考方法是因子中0的数量是小数位数

所以

toFixed(1.23341230123,100)= 1.23