rt,mongoDB 的 client 读取这个 map 没问题,可以正常展示,但是用 go 版本的 mongoClient 就被截断了。
1
KuroNekoFan 2021-02-03 21:36:10 +08:00 via iPhone
是不是数字比 maxinteger 大了
|
2
jiang1234321 OP @KuroNekoFan 不是,小于 INT64_MAX
|
3
marquina 2021-02-03 23:27:19 +08:00
截断是啥意思?位数变少了还是精度丢失了?
|
4
KuroNekoFan 2021-02-04 08:47:40 +08:00 via iPhone
@jiang1234321 js 的 maxinteger 好像和 int64 不相等,mongo cli 可能用了 bigint 处理所以正常
参考 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/BigInt |
5
jiang1234321 OP @marquina int64 后几位被清 0,导致数据都变了
|
6
cheng6563 2021-02-04 11:16:09 +08:00
不会 go
是不是用了类似 JSON 的 api ? JSON 里面没有 int64 只有 double |
7
jiang1234321 OP @marquina int64 只读取到了前 56 位,后面八位变成 0 了
|
8
marquina 2021-02-04 12:41:06 +08:00 via Android
没用过 mongodb,不过我最近用 go 做 json 序列化 /反序列化时经常碰到精度丢失的问题(末尾几位变 0 ),因为 json 里用 double 表示数字,无法精确表示大整数
|