我在一个PHP脚本中执行以下代码:
$obj = new \stdClass();
$obj->lat = 0.000011399388312455;
echo json_encode($obj) . "\n";
脚本的输出结果为:
{"lat":1.1399388312454999446e-5}
如你所见,该数字用科学计数法表示。 在JSON序列化对象中有没有一种表示该特定数字的扩展记法的方法?
期望的输出是:
{"lat":0.000011399388312455}
PHP的版本是5.6.30。
P.S.: 这个JSON序列化对象将会被发送到一个不接受指数形式数字的外部网络服务。此外,它需要是数字而不是字符串({"lat":"0.000011399388312455"}将无法工作)。
这个数字不应该四舍五入(它是地理坐标)。
这里有其他类似的问题,但不幸的是它们不适用于我的情况。
提前感谢你。
precision
和serialize_precision
)无法解决这个问题。 - Marco