微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP-json_encode添加很多十进制数字

为什么会这样呢?我可以预防吗? (除了将它们作为字符串传递外)

var_dump(json_encode([1002.31, 2002.42]));

输出

string(39) "[1002.3099999999999,2002.4200000000001]"

解决方法:

您应该配置“ precision”和“ serialize_precision”参数.

precision = 14
serialize_precision = -1

测试用例:

PHP -r 'var_dump(json_encode([1002.31, 2002.42]));'
string(39) "[1002.3099999999999,2002.4200000000001]"

PHP -r 'ini_set("precision", 14); ini_set("serialize_precision", -1); var_dump(json_encode([1002.31, 2002.42]));'
string(17) "[1002.31,2002.42]"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐