Для моего варианта использования это было быстрое и эффективное решение. Просто отметьте, что это означает, что когда вы декодируете его обратно из JSON, это будет строка, поскольку она будет заключена в двойные кавычки.

е вопрос, это скорее знать. Я обновил приложение, которое использует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 - точность с плавающей точкойОднако, в конце концов, причина этого заключается в переходе от точности к использованию 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"
                }
            },

Ответы на вопрос(5)

Ваш ответ на вопрос