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
相关推荐
LaughingZhu4 小时前
Product Hunt 每日热榜 | 2026-05-21怕浪猫4 小时前
Electron 开发实战(一):从零入门核心基础与环境搭建Mahir084 小时前
Spring 循环依赖深度解密:从问题本质到三级缓存源码级解析小鹏linux5 小时前
Ubuntu 22.04 部署开源免费具有精美现代web页面的Casdoor账号管理系统RyFit5 小时前
SpringAI 常见问题及解决方案大全石山代码5 小时前
C++ 内存分区 堆区前端若水6 小时前
会话管理:创建、切换、删除对话历史绝知此事6 小时前
【算法突围 01】线性结构与哈希表:后端开发的收纳术Bigger6 小时前
mini-cc:一个轻量级 AI 编程助手的诞生无风听海6 小时前
C# 隐式转换深度解析