2013-07-20 187 views
-1

我不明白,为什么在下面的代码中的值不等于1:整数等于0而不是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 
+0

[每个程序员都应该知道的浮点数](http://floating-point-gui.de/) – Barmar

+0

对不起。在发布问题之前,我确实尝试过搜索。 –

+0

添加到芯片的答案,由于易受轻微的不准确性,你的每个变量都等于'0.9999999999999998',但因为前两个被键入为'uint'和'int',所以这些数字被截断(不是舍入)到'0'。 – TheDarkIn1978

回答