最佳答案
这不是一个问题,因为它更多的是一个意识。我更新了一个应用程序,使用 json_encode()
到 PHP7.1.1,我看到一个问题浮点数被改变,有时扩展到17位。根据文档,PHP 7.1.x 在编码双精度值时开始使用 serialize_precision
代替精度。我猜测这导致了
472.185
成为
472.1850000000006
在那个值经过 json_encode()
之后。自从我的发现,我已经回到 PHP 7.0.16,我不再有与 json_encode()
的问题。在回到 PHP7.0.16之前,我还试图更新到 PHP7.1.2。
这个问题背后的原因确实来自于 浮点数精度,但是最终的原因是由于在 json_encode()
中从精确使用到 Series _ Precision 使用的变化。
如果有人知道这个问题的解决方案,我将非常乐意倾听他们的推理/修正。
节选自多维数组(前) :
[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"
}
},