C++精度

D_D*_*D_D 0 c++ sql concatenation decimal

我在我的C++代码中有这个查询:

 query << "UPDATE currency SET value= " << currencyValue
Run Code Online (Sandbox Code Playgroud)

currencyValue定义为" const double& currencyValue",当我观察值时

0.00045545105422339915
Run Code Online (Sandbox Code Playgroud)

但是,如果我检查查询的值,那么我得到这样的东西

UPDATE currency SET value = 0.000455451
Run Code Online (Sandbox Code Playgroud)

小数点丢失了......

有什么想法吗?

Jor*_*ans 5

在输出double值之前,您可以尝试在流上调用setprecision(10)(或您实际需要的任何值).

你可以这样做:

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