-1

我不明白为什么以下代码中的值不等于 1:

var a:uint = (4.1-1.7)/2.4;
trace(a);//traces 0

var b:int = (4.1-1.7)/2.4;
trace(b);//traces 0

var c:Number = (4.1-1.7)/2.4;
trace(c);//traces 0.9999999999999998
4

1 回答 1

0

这是因为在大多数语言中,实数、非整数数字是使用浮点表示 ( http://en.wikipedia.org/wiki/Floating_point ) 存储的,这本质上容易受到轻微不准确的影响。

于 2013-07-20T22:19:30.977 回答