Java 的
Long类型可以表示**-2^63** 到**2^63-1** 的整数JavaScript 的
Number类型是基于 IEEE 754 双精度浮点数标准,只能安全表示 -2^53 到 2^53 之间的整数。前端接收到的 JSON 中
userId: 1975534353465823200(数字格式),JavaScript 将其解析为Number类型,超出精度范围,精度丢失,变成1975534353465823234安全整数范围 :
-9007199254740991到9007199254740991超出范围的数字会丢失精度
比如:
javascript// JavaScript 安全整数 console.log(Number.MAX_SAFE_INTEGER); // 9007199254740991 // 超出安全范围的数字 const id = 1975534353465823200; console.log(id); // 1975534353465823234 ← 最后几位发生变化!解决方法:
后端序列化时转为字符串,在所有返回给前端的 VO 类中,对
Long类型的 ID 字段添加注解:
javascript/** * 使用字符串序列化避免前端精度丢 */ @JsonSerialize(using = ToStringSerializer.class) private Long id;
前后端Long类型ID精度丢失问题
前端小马2025-10-09 20:36
相关推荐
captain3765 小时前
MyBatis操作数据库(入门2)心中有你02146 小时前
Java实现Dijkstra最短路径算法(邻接表 + 优先队列)步行cgn6 小时前
Spring MVC + Thymeleaf 模板解析失败:从 500 错误到页面正常显示hkNaruto6 小时前
【AI】基于大模型的AI游戏地图生成、控制方案:AI Native Game Harness 迁移操作手册IT_陈寒7 小时前
Java序列化踩坑记:对象循环引用让我加班两小时lgcgkCQ7 小时前
【AI 转型实战 1】SpringAI 入门:搭建基础大模型对话能力泡海椒7 小时前
05-雷达图多维画像-信用评级多维画像王中阳Go7 小时前
5.27 分钟干完后端和全部测试:一场三小时笔试的五个失分点,四个不在代码上大哥43097 小时前
Modbus 的"字序":一个配错就变成天文数字,或者干脆变成 0Wang's Blog7 小时前
Java 项目实战:交友项目 - 用户体系集成总结