关于Long类型返回前端精度缺失问题解决办法

前后端联调时,发现后端传输的id 数据1795733299368411138,到了前端就变成了1795733299368411000,JavaScript默认会将这些数值视为Number类型处理,这意味着超过Number类型取值范围的整数在JavaScript中无法精确表示,从而导致精度丢失。

java 中的Long类型取值范围是:

  • 最小值:-9,223,372,036,854,775,808 (即 -2^63)
  • 最大值:9,223,372,036,854,775,807 (即 2^63 - 1)

js 中的Number类型取值范围是:

  • 最小整数:-9,007,199,254,740,992(即 -2^53-1)
  • 最大整数:9,007,199,254,740,992 (即 2^53-1)

解决办法:

在后端id字段加上这一行注解,传输时转为字符串,就可以解决问题了

@JsonSerialize(using = ToStringSerializer.class)

同时《阿里巴巴java开发手册》中也提到

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值