php中 json_encode 函数导致的精度丢失问题

经过排查,php中的 json_encode 函数,会对编码内容中的浮点数产生影响

具体验证如下:

$val = 0.288000000 * 100;
$arr = [
    "key1" => "asdasdasda",
    "key2" => $val
];
var_dump(json_encode($arr));

结果如下:

{"key1":"asdasdasda","key2":28.799999999999997}

如果要直接避免此问题,建议使用最简单的方案(即让变量被编码时被认为不是浮点数):

$val = 0.288000000 * 100;
$arr = [
    "key1" => "asdasdasda",
    "key2" => (string)$val
];
var_dump(json_encode($arr));

原创文章,作者:witersen,如若转载,请注明出处:https://www.witersen.com

(0)
witersen的头像witersen
上一篇 2023年9月15日 上午4:11
下一篇 2023年9月16日 上午3:23

相关推荐

  • Centos8安装PHP

    安装好虚拟机后,可以进行PHP的安装。 一:安装Apache 1.安装Apache:执行命令yum install httpd 2.配置ServerName:执行命令vi /etc…

    2020年12月26日
    2.0K0

发表回复

登录后才能评论