PHP7 json_encode() 浮点小数溢出错误

原因已找到, 该现象只出现在PHP 7.1+版本上

建议使用默认值 serialize_precision = -1 即可

事情是这样的,项目里发现一个奇怪的现象,json_encode一个带浮点价格的数据, 出现溢出, 比如:

bash 复制代码
echo json_encode(277.2);
// 输出结果为: 277.199999999999989

这明显是不能接受的, 数据虽然很接近, 但毕竟已经变更了

下意识地认为这是php的一个bug, 不能准确地json序列化一个浮点小数

这个问题google了半天竟然也无果, 因此json_encode数据里有小数的时候, 记得先number_format()转化成字符串.

相关推荐
快点好好学习吧14 分钟前
PHP程序员到底为什么要学习正则表达式?使用场景是什么?底层原理是什么?
学习·正则表达式·php
Smartdaili China2 小时前
如何在桌面和移动设备上修复YouTube错误400
开发语言·php·error·youtube·移动·住宅ip·错误400
yyf198905252 小时前
用PHP实现论坛功能
php
ID_180079054733 小时前
Python采集闲鱼商品详情API:JSON数据解析与应用实践
数据库·python·json
毕设源码-赖学姐3 小时前
【开题答辩全过程】以 基于PHP的国学诗词网站与推荐系统的设计与实现为例,包含答辩的问题和答案
开发语言·php
鲨莎分不晴4 小时前
深度解码:BSON 是什么?它与 JSON 有何不同?
mongodb·json
曲幽5 小时前
掌握Fetch与Flask交互:让前端表单提交更优雅的动态之道
python·flask·json·web·post·fetch·response
winfredzhang5 小时前
从 Gemini Gems 到 AI Studio:一条可复用的 AI 生成照片工作流
人工智能·json·gemini·nano banana·gems
oMcLin5 小时前
如何在 Ubuntu 24.04 上安装 LAMP 堆栈(包括 PHP 8.3 和 MariaDB 11)
ubuntu·php·mariadb
运维闲章印时光5 小时前
单位本部与分部网络已实现互联互通,网络访问通畅,数据传输正常
开发语言·网络·php