Это не вопрос, поскольку это больше известно. Я обновил приложение, которое использует json_encode()
для PHP7.1.1, и я видел проблему с изменением поплавков, чтобы иногда расширять 17 цифр. Согласно документации, PHP 7.1.x начал использовать serialize_precision
вместо точности при кодировании двойных значений. Я предполагаю, что это вызвало примерное значение
472,185
становиться
+472,18500000000006
после этого значение прошло через json_encode()
. С момента своего открытия я вернулся к PHP 7.0.16, и у меня больше нет проблемы с json_encode()
. Я также пытался обновить до PHP 7.1.2, прежде чем возвращаться к PHP 7.0.16.
Обоснование этого вопроса связано с PHP - Floating Number Precision, однако конец этой причине объясняется изменением точности использования serialize_precision в json_encode()
.
Если кто-нибудь знает о решении этой проблемы, я был бы более чем счастлив услышать аргументы/исправить.
Выдержка из многомерного массива (до):
[staticYaxisInfo] => Array
(
[17] => stdClass Object
(
[variable_id] => 17
[static] => 1
[min] => 0
[max] => 472.185
[locked_static] => 1
)
)
и после прохождения json_encode()
...
"staticYaxisInfo":
{
"17":
{
"variable_id": "17",
"static": "1",
"min": 0,
"max": 472.18500000000006,
"locked_static": "1"
}
},