接口取值过长导致页面精度丢失问题解决方案

166 阅读1分钟

问题描述:数据库存值为number类型,传到前端后因为太长,导致精度丢失。

方案1:可考虑将值转成字符串后再传递给前端。

方案2:利用第三方包,例如json-bigint。具体如下:(这里是基于axios处理)

import JSONBIG from 'json-bigint'

axios.defaults.transformResponse = [
  function (data) {
    // 如果为数据流文件类型,直接返回(用于文件下载,后端返回数据流)
    if(data.type === 'application/octet-stream'){
        return data
    } else {
        const json = JSONBIG({
            storeAsString: true
        })
        const res = json.parse(data)
        return res
    }
  }
]