Подтвердить что ты не робот

Преобразовать float в строку в php?

Как

float (1.2345678901235E + 19) = > строка (20) "12345678901234567890"

Можно ли это сделать?

(это для json_decode...)

4b9b3361

Ответ 1

echo number_format($float,0,'.','');

note: это для целых чисел, увеличение 0 для дополнительных дробных цифр

Ответ 2

$float = 0.123;
$string = sprintf("%.3f", $float); // $string = "0.123";

Ответ 3

Получается json_decode по умолчанию отличает большие целые числа как float. Этот параметр может быть перезаписан в вызове функции:

$json_array = json_decode($json_string, , , 1);

Я основываю это только на основной документации, поэтому, пожалуйста, проверьте и сообщите мне, если это сработает.

Ответ 4

Число с плавающей запятой с двойной точностью может содержать только около 15 значащих цифр. Лучшее, что вы могли бы сделать, это дополнительные цифры с нулями.

Ответ 5

Я решил эту проблему, передав аргумент JSON_BIGINT_AS_STRING для параметра options.

json_decode($json, false, 512, JSON_BIGINT_AS_STRING)

См. пример № 5 в документации json_decode