控制双精度值的显示精度



c++中是否有一种简单的方法来增加双精度类型的偶数的精度:

例如

 double d = 3.6

等于

d = 3.600 (adding 2 zeros)

这个d然后被发送到字符串类

std::to_string(d);

你可能会问为什么?我正在使用GUI (gtkmm),并在textview中产生的每个数字必须具有相同的长度。

这是长度不相同的结果:

4.396       3.957       11
4.183       3.783       10
3.959       3.6     9
3.723       3.404       8
3.474       3.194       7
3.207       2.967       6
2.919       2.719       5

是否有可能增加小数-即当值是原始值时添加额外的零,或者我必须在之后操作字符串?

编辑:我应该更清楚-我对std::cout不感兴趣。下面的输出表示一个GUI

从技术上讲,您没有改变类型double的精度。如果数字太短,要添加"额外的零",可以使用std::stringstream如下所示:

std::stringstream s;
double d = 3.6;
s << std::fixed << std::setprecision(3) << d;
std::string res = s.str();
std::cout << res;

现场演示

以上命令将数字精度设置为3位,并打印3.600

最新更新