+7 495 008 8452 пн.-пт. 10:00 – 17:00

Проблема нечастая, но неприятная, т.к. непонятно почему самое обычное дробное число в JSON превращается в дробное число с дополнительными незначащими цифрами.

Чтобы проверить наличие проблемы, выполните этот простой код:

print(json_encode(['depth' => 7.7]));

Если Вы видите {"depth":7.7} - значит, всё в порядке.

Но если Вы видите что-то вроде {"depth":7.70000000000000017763568394002504646778106689453125} - это плохо.

Проблема заключается в PHP-параметре serialize_precision - он регулирует количество сохраняемых значащих цифр при сериализации и работе с JSON. Значение -1 говорит об использовании современного алгоритма, при котором в подобных случаях всё будет хорошо. Другие значения говорят о том, что в подобных случаях могут быть проблемы.

Для решения проблемы необходимо всего лишь задать для сайта PHP-параметр serialize_precision равным -1 (минус единица).


Возврат к списку