2011-11-17 136 views
0

我在解決printf的問題時遇到了問題。有人可以解釋,因爲這是我得到的結果:請幫忙解釋一下PHP printf

$f = 62.444444444444; 
printf('%.2f', $f); // shows 62.4419 

爲什麼不是62.44?

+4

你確定你在看正確的輸出嗎?這爲我打印62.44 ... – thetaiko

+1

這就是你想要的:'sprintf(「%01.2f」,$ f);' – xbonez

+0

[It works fine](http://ideone.com/snrLZ)。 –

回答

0

因爲%.2f表示:插入一個精度爲2位的浮點數。

+0

這[鏈接](http://www.php.net/manual/en/function.printf.php#27561)也解釋了一些。 – Galled

+0

-1這不回答OP的問題。 –

0

你是什麼php版本?

我得到62.44這個代碼

$f = 62.4444444; 
printf('%.2f', $f); // Output 62.44 
0

這似乎是在printf的確實是一個錯誤,因爲我在這種情況下獲得62.445。嘗試sprintf的替代:

echo sprintf('%.2f', $f); 

[編輯]

不是一個錯誤畢竟。我的交互式shell執行一些額外的類型轉換來輸出。或者像你這樣的事也發生在你身上,或者像Marc B在評論中所說的,其他的東西是19以後