actionscript Number添加和减去奇怪的行为

时间:2013-12-17 14:16:42

标签: actionscript-3 floating-point floating-accuracy

我刚刚遇到问题,只需使用以下简单代码:

trace( 0.01+0.05 );  // 0.060000000000000005
trace( 0.03-0.01 );  // 0.019999999999999997

我的意思是我只想要0.01 + 0.05给我0.06和0.03-0.01给我0.02。 有人知道如何检索正确的结果吗?

2 个答案:

答案 0 :(得分:1)

不精确是由浮点运算引起的。 0.01,0.05和0.03都是浮点文字。并非每个数字(事实上,数字很少)都可以精确地以浮点表示。

例如,0.5可以是,但是0.06不能。根据经验,前15个有效数字是正确的。

有关详细信息,请参阅http://en.wikipedia.org/wiki/Floating_point

答案 1 :(得分:-1)

trace(Math.format((0.01 + 0.05),2));