1

我遇到了以下函数 bson_append_double 的问题:

dvalue = 0.01;
bson_append_double(pbson, field_name, -1,(double)dvalue);

但我得到的结果很烦人:0.0099999997764825820923 以前有没有人遇到过这个问题,请帮助我。谢谢并恭祝安康

4

1 回答 1

0

这只是一个浮点到双精度的转换。如果您不想失去精度,则需要首先将变量声明为双精度数。

在你的代码的某处你有一行

float dvalue;

如果您能够提升为 double 类型,则应考虑将声明更改为:

double dvalue;

这是先前关于转换精度损失的问题。

从浮点数到双精度以及从双精度到浮点数的精度损失?

于 2017-05-31T14:34:04.757 回答