2010-08-29 234 views
2

我有0 -100之間計算一個值,其 通常浮點數等5.87876,所以我用number_format像:百分比顯示問題

$format_number = number_format($number, 2, '.', ''); 

問題是,即使在計算數是整數,如:100

其顯示100.00

,但我想以顯示它喜歡:100

達到此目的的優雅方法是什麼?

(我的意思是,如果沒有別的..)

+0

我不認爲這是不檢查'$ number',沒辦法。 – 2010-08-29 09:42:27

回答

4

這是我所知道的最短方式。

$digits =  (is_numeric($number) && intval($number) == $number ? 0 : 2); 
$format_number = number_format($number, $digits, '.', ''); 

is_numericintval訣竅是從this SO question

+1

您複製了錯誤的技巧 - 我已編輯修復它。 – Timwi 2010-08-29 09:53:21

+0

[NP☺](http://meta.stackexchange.com/questions/700/) – Timwi 2010-08-29 10:04:01

2

採取所以你想有兩位小數點後的精度,但禁止整數.00?我會用sprintf:

$numbers = Array(3.141, 5.87876, 10.9999, 100); 


foreach($numbers as $n) { 
    $string = sprintf("%6.2f\n", $n); 
    $string = str_replace(".00", " ", $string); 
    echo $string; 
} 

輸出是

3.14 
    5.88 
11 
100