Скрыть нули из sprintf
С бд получаю разные числа, например число 1 будет 10150.20000 и число 2 будет 0.00002312. Чтобы убрать нули я использовать round($number, 2), но в таком случае второе число выводиться как 0.00, поэтому попробовать выводить так sprintf("%.8f", $number), но в таком случае первое число выводиться со всеми нулями после запятой. Вопрос: как вывести числа так, что бы в первом числе, нули убирались и было только 10150.2, и в то же время второе число выводилось целиком 0.00002312?
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Если всё это строки (что по мне, так странно, но исходя из условия по-другому и не может быть), то достаточно удалять нули у строки.
$number = '10150.20000';
echo rtrim($number, "0");
echo "\n";
$number = '0.00002312';
echo rtrim($number, "0");
// Output
10150.2
0.00002312
Другой вариант, но схожий
function specialFormat($number, $decimals = 8) {
return rtrim(rtrim(number_format($number, $decimals, '.', ''), '0'), '.');
}
$number = '10150.20000';
echo specialFormat($number);
echo "\n";
$number = '0.00002312';
echo specialFormat($number);
// Output
10150.2
0.00002312