我在Coldfusion Flash Forms中的actionscript中执行以下操作:
90 / 3.7
给我:
24.3243243243243
计算器给了我:
24.32432432432432
注意最后的额外2。
所以当我试图通过采用24.3243243243243 * 3.7获得90的原始值然后我得到89.9999999999这是错误时,我的问题就出现了。
为什么Actionscript会截断该值,如何避免这种情况,以便我得到计算器得到的正确数量?
非常感谢。
答案 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