Php Json_解码限制

Php Json_解码限制,php,json,Php,Json,我使用的是json\u decode(),但出于某种原因,它会修剪最后的数字,例如: $test = '[{"Endereco_POI":"","UF":"SP","IBGE_N":"3509502","IBGE":"350950","Municipio":"CAMPINAS","Bairro":"","CEP":"1305883","Numero":"","X":-47.17788692505713,"Y":-22.918751685387484,"Prioridade":6,"Score":

我使用的是
json\u decode()
,但出于某种原因,它会修剪最后的数字,例如:

$test = '[{"Endereco_POI":"","UF":"SP","IBGE_N":"3509502","IBGE":"350950","Municipio":"CAMPINAS","Bairro":"","CEP":"1305883","Numero":"","X":-47.17788692505713,"Y":-22.918751685387484,"Prioridade":6,"Score":100.0,"Erro":347.59,"EnderecoEncontrado":"1305883, CAMPINAS SP"}]';

echo "<pre>";
print_r(json_decode($test, TRUE));
echo "</pre>";
因此,它输出-47.17788692505713而不是-47.177886925057


原因是什么?我如何修复它?

您的小数位数比PHP支持的多:

php > $y = "-22.918751685387484";
php > echo $y;
-22.918751685387484
如果需要这些尾随数字,则浮点值必须在JSON中编码为字符串:

正在检查php.ini文件设置以了解:

精密度

默认情况下,它设置为14。从手册中:

以浮点数显示的有效位数


大概是浮动精度吧,好了。。。提高了数字,效果很好,谢谢。请选择此作为问题的答案。
php > $y = -22.918751685387484;
php > echo $y;
-22.918751685387
php > $y = "-22.918751685387484";
php > echo $y;
-22.918751685387484