好吧,我只是遇到了一个问题,使用简单的以下代码:
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。有人知道如何检索正确的结果吗?
这种不精确是由于浮点运算造成的。 0.01、0.05 和 0.03 都是浮点文字。并非每个数字(实际上,很少的数字)都可以精确地用浮点数表示。
例如,0.5 可以是,但 0.06 不能。根据经验,前 15 个有效数字是正确的。
有关更多详细信息,请参阅 http://en.wikipedia.org/wiki/Floating_point
trace(Math.format((0.01+0.05), 2));