在 PHP 中,json_encode() 默认会省略浮点数末尾的零,且全局 serialize_precision 无法为各字段单独设置精度;本文介绍通过 number_format() 预处理字段值,实现按需控制每位浮点数的小数位数,并说明其字符串转换本质及使用注意事项。 在 php 中,`json_encode()` 默认会省略浮点数末尾的零,且全局 `serialize_precision` 无法为各字段单独设置精度;本文介绍通过 `number_format()` 预处理字段值,实现按需控制每位浮点数的小数位数,并说明其字符串转换本质及使用注意事项。在构建 JSON API 响应时,常需对不同浮点字段施加差异化精度控制------例如地理坐标(latitude/longitude)保留 6~8 位小数以保障定位精度,而高度(height)仅需保留 2 位小数并显式展示 .00。但 PHP 的 json_encode() 本身不支持字段级精度配置,ini_set('serialize_precision', N) 仅影响全局浮点序列化行为,且自 PHP 7.1 起默认为 -1(即完整精度),仍无法满足"同个响应中多精度共存"的需求。正确做法是:在赋值前,对每个浮点字段单独调用 number_format() 进行格式化。该函数接受数值、小数位数、小数点符号和千位分隔符(后两者可省略),返回带指定精度的字符串:response-\>payload-\>latitude = number_format(rad2deg(latitude), 6, '.', ''); // 如 35.123000response-\>payload-\>longitude = number_format(rad2deg(longitude), 6, '.', ''); // 如 41.123500response-\>payload-\>height = number_format(height, 2, '.', ''); // 如 100.00执行 json_encode($response, JSON_PRETTY_PRINT) 后,将输出符合预期的 JSON: 文心快码 文心快码(Comate)是百度推出的一款AI辅助编程工具
相关推荐
财经资讯数据_灵砚智能2 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年4月23日空中海2 小时前
Redis 原理深度解析:持久化 × 主从复制 × Sentinel × Cluster × 性能排查全攻略AI-小柒2 小时前
磅上线!DataEyes 聚合平台正式接入 GPT-Image-2,开启多模态 AI 生成全新纪元思绪无限2 小时前
YOLOv5至YOLOv12升级:机械器件识别系统的设计与实现(完整代码+界面+数据集项目)m0_588758482 小时前
解决Navicat正向工程从模型建表报错怎么办_外键关联与语法解析TOOLS指南2 小时前
使用Pycharm实现数据可视化作品代码-Python应用2501_914245932 小时前
如何修复宝塔面板由于inode耗尽导致无法创建文件_清理海量小文件缓存与会话目录❆VE❆2 小时前
python基础篇(一):使用vscode搭建python相关环境Gauss松鼠会2 小时前
GaussDB for DWS 数据融合:Oracle数据迁移到GaussDB(DWS)