只是一點點堅持,試圖找到使用正確的函數:的樣式與PHP的十進制數
$number = "4.999";
echo number_format($number, 2); //5.00
我們希望它顯示爲4.99
- 我們應該用什麼PHP函數,它不會圓什麼,只是純粹將小數點後的數字限制爲兩個?
只是一點點堅持,試圖找到使用正確的函數:的樣式與PHP的十進制數
$number = "4.999";
echo number_format($number, 2); //5.00
我們希望它顯示爲4.99
- 我們應該用什麼PHP函數,它不會圓什麼,只是純粹將小數點後的數字限制爲兩個?
使用printf
:
printf('%.2f', $number);
(%.2f
打印浮點數與2位小數)
編輯我讀過你的問題錯了的第一次。你所要求的是四捨五入至小數點後2位數字,然後顯示它:
$number = floor($number*100)/100;
printf('%.2f', $number);
它實際上這個功能的濫用,但它適用於字符串和不從浮充轉換的不準確遭受也不是什麼圓:
echo bcadd("4.999", "0", 2);
http://www.php.net/manual/en/function.bcadd.php
或者乾脆:
echo substr($num, 0, strpos($num, '.') + 3);
這仍然輸出爲5.00,如果我將它分配給一個變量,它輸出爲5.004 – Latox
您的編輯似乎在打印時工作,但將其分配給一個變量時,它不會,我猜是用sprintf替換printf? – Latox
@Latox,yes'printf'會輸出字符串並返回它的長度,而['sprintf'](http://php.net/sprintf)會返回字符串 - 你原來使用的回答是回顯,所以我去了'printf' route – knittl