PHP показывает только значащие (ненулевые) десятичные дроби - PullRequest
14 голосов
/ 25 марта 2011

В PHP (с использованием встроенных функций) я хотел бы преобразовать / отформатировать число с десятичной дробью, чтобы отображались только ненулевые десятичные дроби. Тем не менее, еще одно мое требование состоит в том, что если это число без десятичного значения, я все равно хотел бы показать этот ноль. Примеры:

9.000 -> 9.0
9.100 -> 9.1
9.120 -> 9.12
9.123 -> 9.123

rtrim($value, "0") почти работает. Проблема с rtrim в том, что он оставляет 9.000 как 9.. sprintf() казалось кандидатом, но я не мог получить переменное количество знаков после запятой. number_format() служит другой цели, и это все, что я мог придумать ...

Опять же, я хотел бы отметить, что я не ищу ваши самодельные решения для этого, я ищу способ сделать это, используя внутреннюю функциональность PHP. Я сам могу написать функцию, которая легко справится с этой задачей, так что держите ответы вот так.

Ответы [ 11 ]

0 голосов
/ 09 ноября 2011

Мое решение состоит в том, чтобы позволить php обрабатывать его как число (равно * 1), а затем обрабатывать его как строку (в моем примере я использовал проценты, хранящиеся как десятичное число с двумя десятичными знаками):

printf('%s%% off', $value*1);

Это выводит:

0.00  => 0% off
0.01  => 0.01% off
20.00 => 20% off
20.50 => 20.5% off
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...