实例:
$data = [
'number' => '100',
'price' => 0.1
];
var_dump($data);
echo json_encode($data);
// output
array(3) {
["number"]=> string(3) "100"
["price"]=> float(0.1)
}
{
"number":"100",
"price":0.10000000000000001
}
解决方法:
调整 php.ini
中 serialize_precision
的值(序列化精度) 为 -1 或 直接在代码入口中配置
// PHP代码配置
ini_set('serialize_precision', -1);
注意php.ini
中还有一个配置是 precision
默认值是 14,这个配置是控制 round()、pi() 等 Math 相关的函数精度。