大数问题处理

本质:

  1. JavaScript 能够准确表示的整数范围在-2^532^53之间(不含两个端点),超过这个范围,无法精确表示这个值,这使得JavaScript 不适合进行科学和金融方面的精确计算
    2. Axios请求库内部会使用JSON.parse方法进行一次数据转换,转换的过程中如果遇到’大数’就会出现问题

解决方案:

1.安装插件

npm i json-bigint -S

简单实用

import JSONbig from 'json-bigint'
const str = '{ "id": 1253585734669959168 }'
console.log(JSON.parse(str)) // 1253585734669959200
console.log(JSONbig.parse(str).id.toString()) //1253585734669959168

应用

import JSONbig from 'json-bigint'
const request = axios.create({
  // 当前项目的所有接口都是以这个地址开头的
  baseURL: 'http://xxxxxx.cn/',
  transformResponse: [function (data) {
    // Do whatever you want to transform the data
    // console.log('transformResponse', data)
    try {
      return JSONbig.parse(data)
    } catch (err) {
      console.log('JSONbig转换出错', err)
      return data
    }
  }]
})

注意:不要忘记return

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值