Подобно:
float (1.2345678901235E + 19) => строка (20) "12345678901234567890"
Это можно сделать?
(это для json_decode …)
echo number_format($float,0,'.','');
note: это для целых чисел, увеличение 0 для дополнительных дробных цифр
$float = 0.123; $string = sprintf("%.3f", $float); // $string = "0.123";
Оказывается, json_decode
по умолчанию json_decode
большие целые числа как float. Эта опция может быть перезаписана в вызове функции:
$json_array = json_decode($json_string, , , 1);
Я основываю это только на основной документации, поэтому, пожалуйста, проверьте и сообщите мне, если это сработает.
Число с плавающей запятой с двойной точностью может содержать только около 15 значащих цифр. Лучшее, что вы можете сделать, это добавить дополнительные цифры с нулями.
Я решил эту проблему, передав аргумент JSON_BIGINT_AS_STRING
для параметра options
.
json_decode($json, false, 512, JSON_BIGINT_AS_STRING)
См. Пример № 5 в документации json_decode