解决办法:
批改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
感激以下文章的作者分享他的内容,我的问题才得以解决。
https://blog.csdn.net/moliyir...