在尝试使用MongoDB的C ++ 11驱动程序(版本3.1.0-rc0)时,下面一段代码的输出让我很困惑。
#include <iostream>
#include <bsoncxx/builder/stream/document.hpp>
#include <bsoncxx/json.hpp>
int main() {
bsoncxx::builder::stream::document s;
s << "x" << 1.0;
std::cout << bsoncxx::to_json(s) << std::endl;
return 0;
}
输出:
{ "x" : 1 }
配置: CentOS 7,gcc 6.2.0,mongo-c-driver 1.5.0,mongo-cxx-driver 3.1.0-rc0
答案 0 :(得分:2)
看起来这种行为是libbson所固有的,它提供了JSON序列化。它在技术上是正确的,因为Javascript没有区分数字类型,但我理解你喜欢它如何保留小数部分,即使是0。
所以目前,您的问题的答案是
我也会讨论libbson维护者的问题。 (更新:提交的票证CDRIVER-1945)。