javascript 处理超长的数字出现准确度异常的问题

当前位置: 首页 » 记录 » javascript » javascript 处理超长的数字出现准确度异常的问题

分类: javascript 77阅读阅读模式

1、最近在处理列表数据里,后端返回的是一个超长的数字(156654977037684834),然后在调试时,发现这个数字变成156654977037684830了。

对比返回的数据,后端确实是返回正确的156654977037684834,那么肯定是前端出问题了。

通过浏览器 console.log 发现确实丢失了数据

如上图可以看出,浏览器在解析的时候,把这个超长的数字解析错了,最后在确认数据库的时候发现,数据库用的是bigint(64),想到这个数字长度是不是超过js的解析范围了,网上一查, JavaScript 能进行精确算术运算的整数范围为: 正负2的53次方,也就是从最小值 -9007199254740992 到最大值 +9007199254740992 之间的范围。

 

解决办法:

叫后端转为字符串格式返回了 "156654977037684834" 就可以了

 

 

 

相关文章