Как в PHP вывести маленькое дробное число без изменения количества знаков после запятой и перевода в формат «e»?

Есть входные дробные числа, скажем
0.00005678
0.1234
Требуется вывести их (числом или с переводом в строку - неважно) без изменений, как на входе.

простой вывод выводит числа с 4-мя нулями после запятой в формате "е"
$f1 = 0.00005678;
echo "$f1";
выводит 5.678E-5

number_format требует округления до указанного знака и без него не работает:
number_format( 0.1234, 8, ".", "");
выводит 0.12340000 - не подходит

sprinf обрезает флоты до 6-го знака, да еще и округляет, то есть изменяет первичный вид
sprinf("%f", 0.00005678);
выводит 0.000057 - не подходит

Есть какой-то еще способ заставить PHP просто вывести дробное число без изменения его внешнего вида?
  • Вопрос задан
  • 2449 просмотров
Решения вопроса 1
@vadimek
Полуджун
Можно так:
rtrim(number_format( 0.1234, 8, ".", ""), 0);
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
> Есть какой-то еще способ заставить PHP просто вывести дробное число без изменения его внешнего вида?

Нет

Разумеется, никакого способа нет. Потому что никакого "внешнего вида" у дробных чисел не существует в природе. У них есть только внутренний вид, но вам на него смотреть не захочется. А для вывода в десятичном формате его всегда надо преобразовать и отформатировать.

Если важен "исходный внешний вид", то следует работать с числами, как со строками, и тогда они будут всегда выводиться, как есть.
Ответ написан
Комментировать
link_web
@link_web
Magento, Laravel, Zend, Shopify, Prestashop, WP
$f1 = 0.00005678;
printf('%.8f', $f1);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы