调试接口的时候遇到一个问题,编辑保存的时候接口请求成功,但是返回失败,但是用 apifox 操纵却没有问题。
仔细对比了一下,发现一个奇怪的现象,app_id 后三位还是就不一样了,apifox 的能显示走后两位,浏览器上好像是被四舍五入了。
其实这是JavaScript Number类型的精度问题,我用控制太直接打印了一下,就会发现:
问了一下 GPT,原因是这样的:
在 JavaScript 中,number 类型表示的是双精度 64 位浮点数,它的取值范围大约是 ±5 x 10^-324 到 ±1.79 x 10^308。
这意味着 number 类型可以表示的数字精度是有限的,最多可以包含 17 个有效数字(即有效位数)。
所以在接口设计的时候应该注意类似订单号,ID的字段如果长度很长,不要使用Number类型。
未经允许不得转载:前端资源网 - w3h5 » 一个number类型的订单号踩坑记录