MongoDB将截断的浮点值返回到6个小数点

时间:2013-01-04 03:06:10

标签: c linux api mongodb

我使用最新的C-Driver连接到MongoDB。当我插入一个浮点值,比如1.0043820142745972,然后查询它我似乎只得到1.004382!由于某种原因,所有浮点值都会被截断为小数点后的6位数。

这是我用来查询它的代码

bson_init(query);
bson_append_double(query, "column", value);
bson_finish(query);

当我使用mongo_cursor_next()迭代结果时,我使用bson_iterator_double访问该值。

如何在存储在数据库中时获取确切的值?

1 个答案:

答案 0 :(得分:3)

你确实得到了你的价值,这只是打印格式的问题。

将有问题的值打印到完全精确,我们看到两个表示的值相同:

Prelude Text.FShow.RealFloat> FF 1.0043820142745972
1.00438201427459716796875
Prelude Text.FShow.RealFloat> FF 1.004382
1.00438201427459716796875

默认情况下,浮点值在C中的小数点后面打印六位数,因此当您查看它时,该值将四舍五入。