当前位置: 首页 > news >正文

前后端Long类型ID精度丢失问题

Java 的 Long 类型可以表示 -2^63 2^63-1 的整数

JavaScript 的 Number 类型是基于 IEEE 754 双精度浮点数标准,只能安全表示 -2^53 到 2^53 之间的整数。

前端接收到的 JSON 中 userId: 1975534353465823200(数字格式),JavaScript 将其解析为 Number 类型,超出精度范围,精度丢失,变成 1975534353465823234

安全整数范围-90071992547409919007199254740991

超出范围的数字会丢失精度

比如:

// JavaScript 安全整数
console.log(Number.MAX_SAFE_INTEGER);  // 9007199254740991// 超出安全范围的数字
const id = 1975534353465823200;
console.log(id);  // 1975534353465823234  ← 最后几位发生变化!

解决方法:

后端序列化时转为字符串,在所有返回给前端的 VO 类中,对 Long 类型的 ID 字段添加注解:

/***  使用字符串序列化避免前端精度丢
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long id;
http://www.dtcms.com/a/457364.html

相关文章:

  • 微信小程序,组件中使用全局样式
  • 做网站必须要认证吗poi player wordpress
  • pytest+requests+allure生成接口自动化测试报告
  • leetcode 2300 咒语和药水的成功对数
  • 湖南城乡建设部网站首页长沙网红店
  • 从 0 到 1 搭建实时数据看板:RabbitMQ+WebSocket 实战指南
  • Linux(含嵌入式设备如泰山派)VNC 完整配置指南:含开机自启动(适配 Ubuntu/Debian 系)
  • 网站营销活动泰安市高新区建设局网站
  • 玳瑁的嵌入式日记 --------API总结
  • [xboard] 26 kernel启动流程之initrd、initramfs、ramdisk核心异同
  • 鸿蒙实现滴滴出行项目之侧边抽屉栏以及权限以及搜索定位功能
  • 从OpenAI发布会看AI未来:中国就业市场的重构与突围
  • 乔拓云网站建设wps怎么做网站
  • TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 立即执行模式(Eager Execution)
  • 监控系统2 - framebuffer
  • 大型网站响应式wordpress3.8.3
  • Django `models.Field` 所有常见配置参数的完整清单与说明表
  • 音乐播放器-单html文件
  • 18+网站推广平面设计师素材网站
  • 告别传统SEO!拥抱下一代流量密码:生成式引擎优化(GEO)实战指南
  • 不抽佣美团核销API接口,同时支持美团抖音核销,快速接入
  • 优化网站关键词的技巧建设银行忘记密码网站
  • 网站建设属于服务还是货物为什么asp.net做的网站上传后不显示照片
  • TT直流减速电机(STM32)
  • MQTT协议三个核心函数的详解
  • 马拉松网站建设方案汽车网站管理系统
  • 【企业架构】TOGAF架构标准规范-技术架构
  • 【Proteus仿真】甲单片机(AT89C51)控制乙单片机(AT89C51)
  • 南阳网站推广优化公司discuz和wordpress区别
  • XSLT `<value-of>` 标签详解