背景:查看springboot项目返回给前端的http接口时,其中返回的数值类型字段,在前端显示的数据不正确,然后在控制台查看接口返回的字段,发现同一个数据preview和response中显示的内容不一样。
原因:后端返回的数值类型过大,前端精度不够,导致丢失。
比如后端使用Long精度范围:9223372036854775807(2^64-1)
前端JavaScript接收范围:最大接收数字为16位
所以超过16位,存在精度丢失问题。
解决办法:后端把long类型转string返回即可,前端不用做特殊处理去兼容相应的类型。