我所知道的number_format(..)
行爲類似以下內容:只顯示一個小數位或任何一個浮點數
number_format(2.5, 1) // returns 2.5
number_format(2.0, 1) // returns 2.0 <-- needs to be just 2
的問題是,我不希望.0
中顯示的。如何正確地格式化浮點數以實現此目的?
我所知道的number_format(..)
行爲類似以下內容:只顯示一個小數位或任何一個浮點數
number_format(2.5, 1) // returns 2.5
number_format(2.0, 1) // returns 2.0 <-- needs to be just 2
的問題是,我不希望.0
中顯示的。如何正確地格式化浮點數以實現此目的?
一種選擇是使用round
而不是number_format
:
echo round(2.0, 1); // 2
echo round(2.5, 1); // 2.5
echo round(2.555555, 1); // 2.6
echo round(2.501, 1); // 2.5
echo round(2.1050, 1); // 2.1
另一種選擇是使用number_format
,這將消除小數點後任何尾隨零後投你的電話號碼爲float。
echo (float) number_format(2.0, 1); // 2
echo (float) number_format(2.5, 1); // 2.5
echo (float) number_format(2.555555, 1); // 2.6
echo (float) number_format(2.501, 1); // 2.5
echo (float) number_format(2.1050, 1); // 2.1
都將給你一個小數位的最大。我認爲round
是更好的選擇。
很好的答案,謝謝 –
也許使用is_float?像這樣number_format(2.0, is_float(2.0) ? 1 : 0)
檢查是否是整數http://stackoverflow.com/questions/2188675/php-check-if-variable-is-a-whole-number而不是應用'number_format()'。 – xpuc7o
@jszobody是的,你的答案是最好的,謝謝 –