【发布时间】:2019-04-04 04:55:27
【问题描述】:
有下面的代码。想要保留纬度的所有小数位,但 json_encode 会截断最后两位数。执行 json_encode 时如何保留所有小数位。我希望将值作为 json 输出中的数字,而不希望作为用引号括起来的字符串。
print_r(array('lat' => '-33.661853351608244' ));
echo json_encode( array('lat' => '-33.661853351608244' ),JSON_NUMERIC_CHECK);
输出:
Array
(
[lat] => -33.661853351608244
)
{"lat":-33.661853351608}
【问题讨论】:
-
浮点数的精度不足以保留所有这些小数位。
-
可能和你的php版本有关?我在writephponline.com 上运行了你的代码,它按预期工作
-
@Amine 这可能取决于它是 32 位还是 64 位 PHP。
-
那么他可能只需要将它们转换为字符串并在接收时将它们解析到他要使用数据的任何地方。