最近项目联调过程中发现,long类型的主键通过ajax请求返回到chrome浏览器之后,数据出现了不一致的情况。发现数据的前面是一样的,但是最后几位都是0。但是,尝试用postman去请求,发现返回的数据是正确的。
查找资料之后发现,是浏览器精度问题。js中的number类型不能完全表示long类型的数据,当long长度大于17位时,会出现精度丢失的问题,浏览器会自动把超出部分用0表示。
chrome从第17位就开始不正常(有时候正常有时候+1),18位及以后均补0
查找资料之后发现,是浏览器精度问题。js中的number类型不能完全表示long类型的数据,当long长度大于17位时,会出现精度丢失的问题,浏览器会自动把超出部分用0表示。
chrome从第17位就开始不正常(有时候正常有时候+1),18位及以后均补0