技术解析

请问 API 接口字段分发 16 位整数为 Int 类型有啥坑没有
0
2021-06-09 18:15:27
idczone

就像这样,我想发 id1 这样的类型,不然客户端处理就设计到一系列问题,比如这个 ID 写入 Sqlite 的时候要转换成 Int 类型(要做索引),正常显示的时候就不用转换,ID 需要绑定到 Cell 上也要转换成 Int,请问直接分发 Int 可以嘛?

{
    "id1": 4216045057949697,国外服务器
    "id2": "4216045057949697",
    "name": "XXX",
    "album": "YYY"
}


该客户端做的事就让客户端做啊

一开始我还以为是 16 个二进制位长的整数,这种情况用 id1 的方法一般是没问题的。
但实际上说的是 16 个字符长的整数,在 JSON 里写过长的整数,有的解析库可能会使用小数运算导致丢失数据。比如在 js 中不能大于 Number.MAX_SAFE_INTEGER 。

Int32 的话放心用,Int64 还是用字符串吧

请问 Int64 的话会有什么问题呢?

数字过大 js 处理会有问题。需要单独处理

溢出,丢失精度

js number 类型,用的浮点数存储的。整数范围小于 int64.



好的,谢谢解答!

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服