js处理后端返回超过16位大数字方案
这个问题与这篇博客讲的问题类似。(https://blog.csdn.net/StoneVivi/article/details/105210934)。这里就不具体说明了,内容如题。
背景: 后端返回了一个19位的数据,超过了16位,前端拿到的数据,自动把超出部分转成0了后输出的,导致前端console.log看到的数据,超出部分都是0,与后端实际返回不一致。
1561020000000534036 --> 1561020000000534000
JavaScript中的基本数据类Number是双精度浮点数,它可以表示的最大安全范围是正负9007199254740991,也就是2的53次方减一, 任何超出安全范围的数字都可能会失去精度。
解决方案:
1.将接收的数据转化为文本
2.通过正则匹配出数字内容,转换为字符串
3.JSON.parse
在axios中处理:
.then( res => {
# 发现接收的res已经被js转换过了,并不可行
// do something
return res.data
})
由于接收到的res已经被转换过了,考虑将接收的状态改为text并未收到我们理想的效果。得到的依然