在php7中,
json_encode()
serialize_precision

serialize_precision
通过设置
serialize_precision
ini_set('serialize_precision', 16);结果显示为:
立即学习“PHP免费学习笔记(深入)”;

有网友指出,使用默认值-1是绝对错误的!以下是官方文档的一个示例:
<?php
$v = 10.00000000000001;
ini_set('precision', 14);
ini_set('serialize_precision', 17);
var_dump($v);
echo var_export($v, true), PHP_EOL;
ini_set('serialize_precision', 14);
echo json_encode($v), PHP_EOL;
ini_set('serialize_precision', 17);
echo $v, PHP_EOL;
?>输出结果:
float(10) 10.00000000000001 110 10.00000000000001
此外,还有其他解决方法:
方法1:强制转换为字符串以保证精度
request['param']['feeAmount'] = (string)request['param']['feeAmount'];
注意:使用这种方法时,必须注意对接的接口是否有变量类型要求。
方法2:使用number_format
number_format(number, decimals, decimalpoint, separator)
参数说明:
number
decimals
decimalpoint
separator
通过以上方法,您可以有效解决PHP7中
json_encode()
以上就是【黄啊码】PHP7 json_encode()导致浮点数精度丢失的解决办法的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号