一个number类型的订单号踩坑记录

调试接口的时候遇到一个问题,编辑保存的时候接口请求成功,但是返回失败,但是用 apifox 操纵却没有问题。

仔细对比了一下,发现一个奇怪的现象,app_id 后三位还是就不一样了,apifox 的能显示走后两位,浏览器上好像是被四舍五入了。

一个number类型的订单号踩坑记录 经验总结 第1张

其实这是JavaScript Number类型的精度问题,我用控制太直接打印了一下,就会发现:

一个number类型的订单号踩坑记录 经验总结 第2张

问了一下 GPT,原因是这样的:

在 JavaScript 中,number 类型表示的是双精度 64 位浮点数,它的取值范围大约是 ±5 x 10^-324 到 ±1.79 x 10^308。

这意味着 number 类型可以表示的数字精度是有限的,最多可以包含 17 个有效数字(即有效位数)。

所以在接口设计的时候应该注意类似订单号,ID的字段如果长度很长,不要使用Number类型。


未经允许不得转载:前端资源网 - w3h5 » 一个number类型的订单号踩坑记录

赞 (0)
分享到: +

评论 沙发

Avatar

换个身份

  • 昵称 (必填)
  • 邮箱 (选填)