如何正确地在c++中打印double类型的cout

How to properly print a double to cout in C++

本文关键字:double 类型 cout 打印 正确地 c++      更新时间:2023-10-16

我在发布这个之前已经看了一些问题,找不到我要找的东西,所以如果它是重复的,我很抱歉。

我有这样的代码:

cout << "The balance at year " << i << " will be " << char(156) << std::setprecision(2)
     << balance << endl;

据我所知,这应该打印到控制台类似:

£2.00
£100.46

*供参考以上只是例子,我知道没有什么建议这些数字,但格式应该是这样的,对吗?

但这是我的输出:

£1e+002
£1.1e+002

它为什么这样做?

我的理解是,使用setprecision会显示小数点后2位,仅此而已。

哦,还注意到几乎没有关于打印double的问题,说使用setprecision实际上声明这需要包括:

#include <iomanip>

setprecision设置精度、位数。

fixed设置固定格式。

使用std::fixed设置固定格式,而不是科学记数法。

cout << "The balance at year " << i << " will be " << char(156) << std::setprecision(2) << std::fixed << balance << endl;

这样做:

cout << "The balance at year " << i << " will be " << char(156) << std::setprecision(2) << std::fixed << balance << endl;