例:
数据库的值如下:
前端数据如下:
好像有什么不对?数字的最后2位不正确啊!
这其实是因为JS的长整数精度有限,java的Long类型数据超出了范围,所以出现了精度损失。
我们后台返回的是Json的字符串,在axios内部会自动调用 JSON.parse()方法把json字符串转为JS数据,就会出现精度损失。如果不进行转换,依然当做字符串来使用,就不会有问题了。
也可以重写axios对响应的处理回调函数:
axios({
method:"post",
url:"/post",
data:post,
// `transformResponse` 在传递给 then/catch 前,允许修改响应数据
transformResponse: [function (data) {
// 对 data 进行任意转换处理
return data;
}],
}).then(resp=>{}).catch(err=>{})