Apifox 中接口返回的数据过长,导致精度丢失怎么解决?

Apifox 中接口返回的数据过长,导致精度丢失怎么解决?

Apifox 中调试接口时发现,当接口返回的响应数据过长时(通常超过 18 位)会导致精度丢失。具体来说,实际返回的数据应该是按预期的格式,但是某些字段的数值却出现了自动截断的情况,导致了数值的不准确性。


例如,本来实际返回的数据应该是这样子的:

{
    "code": "0",
    "message": "success",
    "data": {
        "agentId": 123456789123456789123,
        "status": "ok",
        "name": "dog"
    }
}

但是,却变成了这样:

{
    "code": "0",
    "message": "success",
    "data": {
        "agentId": 123456789123456800000,
        "status": "ok",
        "name": "dog"
    }
}
Apifox 数据精度丢失

问题分析


里面的 agentId 字段的值跟后端实际返回值不一样,后几位的值自动变成了 0,导致了数值的不准确性。出现这种情况是因为该字段值长度超出了限制,数据过长所以导致精度丢失,在接收端处理时,超出了系统的处理范围,导致了末尾数字被自动置为 0 的情况。


为了解决这个问题,在 Apifox 中提供了一个简单的解决方案。

解决方案


在【项目设置->功能设置->高级设置】中,把“兼容 BigInt”选项开启即可。

Apifox 数据精度丢失

开启之后,可以在项目里重新发起请求,观察问题是否得到解决。

Apifox 数据精度丢失

总结

通过在 Apifox 中开启“兼容 BigInt”选项,系统会对大数值进行特殊处理,从而避免了数据精度丢失的问题。这样一来,你应该能够顺利地获取到完整准确的数据响应了。

知识扩展:

订阅
qrcode

订阅

随时随地获取 Apifox 最新动态