可能重複:
Floating point inaccuracy examples
PHP rounding issue - Is this a bug?PHP的錯誤?當我從x.02減去x.01,其中x> = 64我得到0.00999999999999
發現了可能是在PHP中的錯誤,但我想檢查一下,看看這只是一些奇怪的計算或某人已經知道的事情。
一個例子:
$available = 64.02;
$spent = 64.01;
$available -= $spent;
print $available."<br />";
我期望的結果是0.01,對不對?但是,我得到0.00999999999999。
如果你對小於64的任何整數(例如:45.02 - 45.01)這樣做,我會得到正確的0.01結果。然而,任何大於或等於64的東西都會給我0.00999999999999。
我已經在PHP 5.2.17和PHP 5.2.12中測試過。試圖谷歌它,但找不到任何東西。任何人都可以解釋這個問題嗎?
這不是一個錯誤,它是[浮點數](http://stackoverflow.com/questions/2100490/floating-point-inaccuracy-examples)數字的預期行爲。可能重複的[PHP舍入問題 - 這是一個錯誤嗎?](http://stackoverflow.com/questions/6441548/php-rounding-issue-is-this-a-bug) – meagar 2012-02-08 23:04:41
不要讓我們發射到一個討論如何.00999999 ... = .01 ;-) – Tim 2012-02-08 23:08:54