乐趣区

关于php:PHP74-jsonencode-造成float数据精度异常情况

解决办法:
批改 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…

退出移动版