AS3 - 数量和变量和精度问题之和

时间:2013-07-12 19:44:22

标签: actionscript-3 actionscript numbers precision

我有两个Number类型的变量,但它们的总和不正确。

这是我的情景:

var a:Number = 1.1;
var b:Number = 2.2;
var c:Number = a + b;

c的结果是3.3000000003而不是3.3

如何解决此问题?

显然,样本中'a'和'b'的精度是逗号后的1个数字,但可以是几个。

1 个答案:

答案 0 :(得分:1)

这种预期的行为。实际上很难在二进制数系统中表达某些数字。亲密的aprox。结果:

1.00011001100110011001100110011001... (1.09999..)
可悲的是,1.2同样难:

1.00110011001100110011001100110011... (1.19999..)

你可能会注意到1100不断重复。就像在十进制系统中不能表达1/3一样。

解决方案可能是通过舍入c来降低精度。

trace(c.ToString(1));