Процент отображения проблемы - PullRequest
2 голосов
/ 29 августа 2010

у меня есть значение, которое я вычисляю в диапазоне от 0 до 100, обычно это число с плавающей запятой, например, 5.87876, поэтому я использую number_format вроде:

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

проблема в том, что дажерассчитать число целое число, как: 100

его шоу 100.00

но я хочу отобразить его как: 100

каков элегантный способ достичь этого?

(я имею в виду без других, если ..)

Ответы [ 2 ]

4 голосов
/ 29 августа 2010

Это самый короткий способ, который я знаю.

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

Трюк is_numeric и intval взят из этого ТАКОГО вопроса

2 голосов
/ 29 августа 2010

Итак, вы пытаетесь иметь точность в два знака после запятой после точки, но подавляете .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   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...