解决方法:
修改php.ini里的serialize_precision的值为-1 即可;然后重启下开发环境
serialize_precision = -1
事情起因:
在用laravel开发接口时,发现数据库中的数据是3.9,但“return success($price);”时却是返回“3.8999999999999999”;
$price = 3.9;
return success($price);//输出3.8999999999999999
这个就出现了精度问题,但使用laravel自带的dd方法后,发现
$price = 3.9;
dd($price);//输出3.9
由此可以判断是return 的时候,json_encode出的问题,于是以下代码验证
$price = 3.9;
echo json_encode($price);//输出3.8999999999999999
于是搜索了很多半天,才找到了解决方法。我本地的serialize_precision值是17,需要改成 -1;然后重启开发环境后,再次输入以下代码
$price = 3.9;
echo json_encode($price);//输出3.9
感谢以下文章的作者分享他的内容,我的问题才得以解决。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。