Задать вопрос
@bitrixweb
Вечно молодой, вечно пьяный

Почему json_decode с JSON_BIGINT_AS_STRING приводит числа в экспоненциальный формат?

Друзья, здравствуйте.

Есть json с набором значений и json_decode.
Как заставить json_decode возвращать именно это значение?
Так как сейчас возвращается число в экспоненциальной форме (E).
$jsonString = {"key": 0.00000055};
$result = json_decode($jsonString, true, 512, JSON_BIGINT_AS_STRING);

Спасибо!
  • Вопрос задан
  • 400 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Skillbox
    PHP-разработчик. Базовый уровень
    3 месяца
    Далее
Решения вопроса 2
@maxtm
Make money, not job
Просто используйте number_format на такие числа
Ответ написан
Xardch
@Xardch
function decimalNotation($num){
        $parts = explode('E', $num);
        if(count($parts) != 2){
            return $num;
        }
        $exp = abs(end($parts)) + 3;
        $decimal = number_format($num, $exp);
        $decimal = rtrim($decimal, '0');
        return rtrim($decimal, '.');
}

echo 0.00000055; // 5.5E-7
echo decimalNotation(0.00000055); // 0.00000055
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы