目录

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

目录

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

这里 我在java控制台上 输出了id的值

https://i-blog.csdnimg.cn/blog_migrate/d5691cfb07ec6de556d68a451bacfbd7.png

但请求到前端后 很明显就不太一样了

https://i-blog.csdnimg.cn/blog_migrate/9c568b2a9d5ef6d304b5860cdc562b88.png

这个问题比较经典的叫法是 雪花算法生成的ID过长,前端接收精度丢失

原因

前端使用number类型进行接收,number类型的范围小于后台Long类型的范围,出现了精度丢失问题。

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

这个问题 其实前后端都能处理

前端处理的话 我的文章 有讲过

但我个人建议还是后端去处理 因为你要想 这个问题本身就是因为你后端不够成熟

因为个人经历不完整导致的 而且这个问题 所以 我觉得我们既然弄出了这个问题 还是由我们自己填上比较好

其实很简单

https://i-blog.csdnimg.cn/blog_migrate/6dccc565c0b15bd6608c474254e75c89.png

long到了前端转数字类型 有大小限制 但 字符串没有呀

这里 java long转字符串 可以用

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

然后前端传回给你

字符串转 long 可以用

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

然后 我们运行项目 前端发送请求

https://i-blog.csdnimg.cn/blog_migrate/e1ec430c79fc326c15d91a3e999d325e.png

可以看到 字符串就不会出现这个问题了

https://i-blog.csdnimg.cn/blog_migrate/7d0e0a1c3dc74cff62a301cfcac2295d.png