php在json_encode时, 小数点后的精度丢失, 位数变多
如下代码,结果的精度会不正确.
echo json_encode(0.6);//结果0.59999999999999998
出现这种情况,是因为json_encode行为受到了php.ini中serialize_precision配置的影响,看网上是说将这个值调成小等于16会正常.其实将其设成-1是个更好的选择,-1表示php根据精度自动调整. 所以解决方案就是要么直接改php.ini中的serialize_precision; 或者你没权限或不想更改这个配置, 那么使用如下代码:
ini_set('serialize_precision', -1);
echo json_decode(0.6);//结果0.6, 正常