@TerritoryOfPeace
Изучаю php

Как с помощью php можно работать с числами научной нотации типа 4.607e-12?

Мне нужно числа научной нотации типа 4.607e-12 переводить в десятичный формат типа 0.00000000001
Перевожу их с помощью функции:
$high24h = number_format($high24h, 12);
Где 12 количество символов после точки.
Как с помощью php посчитать количество символов после запятой в очень маленьких числах и вывести это число в удобном десятичном формате типа: 0.0000000001, чтобы если очень маленькое то отображалось только одно число в конце
Пробовал считать количество символов в строке после точки $high24h, но там всегда выдает число 7.
  • Вопрос задан
  • 109 просмотров
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Для PHP 8
$value =  4.607e-12;
printf('%.*f', max(8, 1 - (int)log10($value)), $value);
// 0.000000000005

Для старых версий
printf('%.' . max(8, 1 - (int)log10($value)) . 'f', $value);
Ответ написан
BoShurik
@BoShurik
Symfony developer
Можно использовать brick/math

https://github.com/brick/math/issues/11

use Brick\Math\BigDecimal;

echo BigDecimal::of('1.23456e27'); // 1234560000000000000000000000
echo BigDecimal::of('1.23456789e-31'); // 0.000000000000000000000000000000123456789
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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