后端返回的id到前端后 后面几位数全部变成0了 问题解决

这里 我在java控制台上 输出了id的值
在这里插入图片描述
但请求到前端后 很明显就不太一样了
在这里插入图片描述
这个问题比较经典的叫法是 雪花算法生成的ID过长,前端接收精度丢失
原因
前端使用number类型进行接收,number类型的范围小于后台Long类型的范围,出现了精度丢失问题。

简单说 number 类型 接不了那么大的数值 后面的值直接被四舍五入了

这个问题 其实前后端都能处理
前端处理的话 我的文章 vue项目通过json-bigint在前端处理java雪花id过长导致失去精度问题有讲过
但我个人建议还是后端去处理 因为你要想 这个问题本身就是因为你后端不够成熟
因为个人经历不完整导致的 而且这个问题 所以 我觉得我们既然弄出了这个问题 还是由我们自己填上比较好

其实很简单
在这里插入图片描述
long到了前端转数字类型 有大小限制 但 字符串没有呀

这里 java long转字符串 可以用

long number = 1234567890L;
String str = Long.toString(number);

然后前端传回给你
字符串转 long 可以用

String str = "1234567890";
long number = Long.parseLong(str);

然后 我们运行项目 前端发送请求
在这里插入图片描述
可以看到 字符串就不会出现这个问题了
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值