2016-10-07 118 views
1

我所知道的number_format(..)行爲類似以下內容:只顯示一個小數位或任何一個浮點數

number_format(2.5, 1) // returns 2.5 
number_format(2.0, 1) // returns 2.0 <-- needs to be just 2 

的問題是,我不希望.0中顯示的。如何正確地格式化浮點數以實現此目的?

+0

檢查是否是整數http://stackoverflow.com/questions/2188675/php-check-if-variable-is-a-whole-number而不是應用'number_format()'。 – xpuc7o

+0

@jszobody是的,你的答案是最好的,謝謝 –

回答

3

一種選擇是使用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是更好的選擇。

+0

很好的答案,謝謝 –

1

也許使用is_float?像這樣number_format(2.0, is_float(2.0) ? 1 : 0)

相關問題