Недавно моя локальная среда начала отображать / сохранять числа с плавающей запятой с двумя десятичными точками с дополнительной строкой чисел в конце, что приводит к неточным числам.Такое поведение недавно;Раньше он вел себя правильно.Я не могу думать ни о чем особенно изменившемся.
Для действительно простого примера:
echo 18.99;
Это выводит:
18.989999999999998
Когда я json_encode
массив со значением, проблема усугубляется:
[18.989999999999998436805981327779591083526611328125]
Любая идея, что может быть причиной этой проблемы, и какЯ мог бы это исправить?PHP 7.1, MacOS High Sierra 10.13.2, если это поможет.Кроме того, я использую Laravel 5.5 в качестве своего фреймворка.
В некоторых исследованиях, которые я уже провел, я попытался изменить настройку php_ini для precision
на 12
, 14
и 17
соответственно.Без изменений.
РЕДАКТИРОВАТЬ: я видел другие вопросы, касающиеся точности чисел с плавающей запятой в PHP и других языках, но, как я уже говорил, это поведение недавно, поэтому я не верю, что этопросто врожденный недостаток языка.