写代码碰到一个bug, 现象是 后台Java返回的18位的Long类型的数据,到前台丢失了精度还有前端在数据编辑的时候出现问题

(如上图所示前端请求对象两个数字其实都是对应同一个产品的id,上面字符串没问题,下面前端同事传的数字),  查了一下,原因是

java的Long类型是18位, 而 js的Long类型(虽然没有明确定义的Long类型)是16位, 所以会造成丢失精度,

解决办法:

将后台的Long转换为字符串传回前台,前端提交的时候也提交字符串(如果转为数字就会失真,后台字符串会自动转化为long)