shuwenkai
新手
新手
  • 最后登录2019-09-09
  • 发帖数2
阅读:81回复:1

[前端]关于JS数值精度丢失问题

楼主#
更多 发布于:2019-09-09 11:27
今天项目中发现一个问题,前端获取数值跟后台传值不一致,查询过后发现是数值太大导致JS数值精度丢失

图片:a.png


如图!
JS的数字类型目前支持的最大值为:9007199254740992,
一旦数字超过这个值,JS将会丢失精度,导致前后端的值出现不一致
然而,JAVA的Long类型的 最大值为:9223372036854775807,
snowflake的算法在实现上确实没问题的,但实际运用的时候一定要避免这个潜在的深坑。

关于具体解决方案,解决方案

因为涉及java方面知识,本人java半吊子,所以就就直接贴了一个链接,
如果是在项目一开始的时候就发觉到了这个问题,我建议还是把这个id设置为String类型(数据库id是long还是string的那一点性能差距其实真可以忽略)。

最新喜欢:

sunshinesunshi...
sunshine
管理员
管理员
  • 最后登录2019-09-10
  • 发帖数158
  • 社区居民
沙发#
发布于:2019-09-10 07:05
涉及的id,如果数字比较大的话,一般都是string ,数值小,像分类表这类的id的话,还是可以用int . 楼主id这个长度,应该是用string类型,赞成楼主的建议
游客


返回顶部