js long类型精度丢失问题

      最近做的某个项目,涉及到后台将订单号传给前台,前台再将订单号传回,我们订单号是long类型的一串数字(这里吐槽一下,这个是之前的‘前辈’留下的代码,我也搞不懂为啥要用long,而不用string,毕竟不会参与计算),前端页面是使用的freemarker,我们用freemarker的语法将订单号放在页面上,点击支付的时候,将订单号再传回给后台。

      问题描述,将订单号传回到后台后查不到该订单号。打断点调试,后发现传入后台订单号错误,调试页面,打开页面后,发现页面上的订单号是对的。Network上也是对的,这就搞得我很懵,什么情况!继续调试,把接收订单的变量类型改为string,继续调试,发现还是错误的。这下搞得我彻底懵了。调了很久,最后发现是页面的锅,把订单号前后加引号变为字符串就没问题了,是因为js接受到long类型的时候会丢失精度。

       

你可能感兴趣的:(js,springboot,spring框架)