c++中的精度

Precision in C++

本文关键字:精度 c++      更新时间:2023-10-16

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

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

currencyValue被定义为"const double& currencyValue",当我看的值是

0.00045545105422339915

但是如果我检查查询的值就会得到这样的结果

UPDATE currency SET value = 0.000455451

所以小数会丢失…

知道为什么吗?

你可以尝试调用setprecision(10)(或任何你实际想要的值)在你的流输出双精度值之前。

你可以这样做:

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

currencyValue为双值,"UPDATE currency SET value= "为字符串。从双精度到字符串的转换会丢失精度。您可以使用类似"std::setprecision(20)"或使用其他函数将double转换为string