2017-05-29 141 views
1

我得到了下面的功能bson_append_double一個問題:BSON-append_double與雙精度

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

,但我得到的結果是煩人長:0.0099999997764825820923 這兒還有沒有人之前遇到過這個問題,請幫幫我。 感謝和問候

+0

您期待什麼輸出? –

+0

與輸入0.01相同。是真的嗎? –

回答

0

這只是一個浮點到雙精度的轉換。如果你不想失去精度,你需要首先聲明變量爲double。

地方在你的代碼中有一條線

float dvalue; 

,如果你能提升至雙輸入,你應該考慮改變聲明:

double dvalue; 

這裏是損失前一個問題的轉換精度。

Precision loss from float to double, and from double to float?