在 mongo 里有一堆数据,大概长这个样子
[{"versions": {"version1": {"app": Decimal128(1.1)}}}]
通过 rust-mongo 库获取到的数据是 bson::Decimal128 这个类型,这个类型不能直接操作,甚至都打印不出来数值是多少。 直接序列化成 json 输出是这样的。
[{"versions": {"version1": {"app": "$numberDecimalBytes": [10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 48]}}}]
大概是我英语太差了,手册都要翻烂了,都没看到在哪里能对这个数据类型进行操作。 希望大佬能指条路,如何获取 Decimal128 中的浮点数,或者有什么方法能够对其进行比较或者加减运算的。
1
toomoy 2023-01-02 13:31:27 +08:00
来自 chat.openAi 的回答
处理 MongoDB 中的 Decimal128 数据可以使用 MongoDB Rust 客户端库中提供的 Decimal 类型。你可以使用以下方式获取该类型: Copy code use bson::decimal128::Decimal128; let decimal = Decimal128::new(12345, 2); |
2
PTLin 2023-01-04 18:10:30 +08:00
现在这个类型操作不了,代码的注释里写了现在只能用于交互 https://docs.rs/bson/2.4.0/src/bson/decimal128.rs.html#7 。
并且附带一提这个类型里面的 128 位的数据貌似不是 IEEE 754-2008 的标准浮点数编码,所以用其他库比如 rust_decimal 也没用。 |