@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);

Спасибо!
  • Вопрос задан
  • 374 просмотра
Решения вопроса 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
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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