好吧,我只是遇到了一个简单的以下代码问题:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句