Actionscript除法然后相乘时舍入错误

Actionscript除法然后相乘时舍入错误,actionscript,coldfusion,Actionscript,Coldfusion,我正在Coldfusion Flash表单中的actionscript中执行以下操作: 90/3.7 给我: 24.3243243243243 而计算器给了我: 24.32432432432432 请注意末尾的额外2 因此,当我试图通过24.3243*3.7获得原始值90,然后得到89.99999999,这是错误的,我的问题就出现了 为什么Actionscript会截断该值?我如何避免这种情况,以便获得计算器获得的适当数量 非常感谢。有关ActionScript中数字的详细说明,请访问。见第

我正在Coldfusion Flash表单中的actionscript中执行以下操作:

90/3.7

给我:

24.3243243243243
而计算器给了我:

24.32432432432432
请注意末尾的额外2

因此,当我试图通过24.3243*3.7获得原始值90,然后得到89.99999999,这是错误的,我的问题就出现了

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


非常感谢。

有关ActionScript中数字的详细说明,请访问。见第4.3.2.1节。浮点精度

相关引用:


为了适应微小的差异,如果差异会对代码的行为产生不利影响,则应手动对数字进行四舍五入

使用如下例程对数字进行四舍五入

var toFixed:Function = function(number, factor) {
    return (Math.round(number * factor)/factor);
}
当系数为10、100、1000等时,一个简单的思考方法是系数中0的数量是小数位数

所以


toFixed1.23341230123100=1.23

但我根本不想取整。在代码中,我做了一个简单的除法,没有舍入。数据类型必须是舍入本身。此外,舍入的结果类似于89.99,而不是使用舍入方法得到的90。我以前确实试过这个。感谢计算机是如何处理浮点精度的,对此你无能为力,是的,变量类型有一个继承精度。谢谢,你已经验证了我的原始帖子,这是一个问题。有什么解决办法吗?你说你想得到90的初始值,四舍五入对你来说是可行的。就像我在上面对戴尔说的,我根本不想四舍五入。在代码中,我做了一个简单的除法,没有四舍五入。数据类型本身必须为舍入。