共计 545 个字符,预计需要花费 2 分钟才能阅读完成。
解决办法:
批改 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…
正文完