我有0 -100之間計算一個值,其 通常浮點數等5.87876,所以我用number_format像:百分比顯示問題
$format_number = number_format($number, 2, '.', '');
問題是,即使在計算數是整數,如:100
其顯示100.00
,但我想以顯示它喜歡:100
達到此目的的優雅方法是什麼?
(我的意思是,如果沒有別的..)
我有0 -100之間計算一個值,其 通常浮點數等5.87876,所以我用number_format像:百分比顯示問題
$format_number = number_format($number, 2, '.', '');
問題是,即使在計算數是整數,如:100
其顯示100.00
,但我想以顯示它喜歡:100
達到此目的的優雅方法是什麼?
(我的意思是,如果沒有別的..)
這是我所知道的最短方式。
$digits = (is_numeric($number) && intval($number) == $number ? 0 : 2);
$format_number = number_format($number, $digits, '.', '');
的is_numeric
和intval
訣竅是從this SO question
採取所以你想有兩位小數點後的精度,但禁止整數.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
我不認爲這是不檢查'$ number',沒辦法。 – 2010-08-29 09:42:27