控制双精度显示的精度

时间:2014-06-16 20:04:45

标签: c++ string double double-precision

在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不感兴趣。输出abow代表GUI

1 个答案:

答案 0 :(得分:3)

从技术上讲,您不会更改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;

Live demo

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