簡體   English   中英

C++ 的精度

[英]Precision in C++

我的 C++ 代碼中有這個查詢:

 query << "UPDATE currency SET value= " << currencyValue

currencyValue 被定義為“ const double& currencyValue ”,當我看到該值是

0.00045545105422339915

但是,如果我檢查查詢的值,那么我會得到這樣的結果

UPDATE currency SET value = 0.000455451

所以小數會丟失...

任何想法為什么?

您可以嘗試在 stream 上調用setprecision (10) (或您實際想要的任何值),然后再向其輸出雙精度值。

你可以這樣做:

#include <iomanip>
query << "UPDATE currency SET value= " << std::setprecision(10) << currencyValue;

currencyValue 是雙精度,“UPDATE currency SET value=”是字符串。 從 double 到 string 的轉換會丟失精度。 您可以使用“std::setprecision(20)”之類的東西或使用不同的 function 將雙精度轉換為字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM