这不是一个问题,因为这更像是一个需要注意的问题.我更新了一个使用json_encode()
到PHP7的应用程序.1.1我看到一个问题,浮动被更改为有时扩展到17位.根据文档,PHP7.1.当编码双精度值时,x开始使用serialize_precision
而不是精度.我猜这导致了一个例子的价值
472.185
成为
472.18500000000006
在那之后,价值超过了json_encode()
.自从我发现以来,我已经恢复到PHP 7.0.16,并且我不再有json_encode()
的问题.在恢复到PHP 7.0.16之前,我还try 更新到PHP 7.1.2.
这个问题背后的原因确实源于PHP - Floating Number 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"
}
},