使用cout在小数点后打印X号

时间:2013-01-01 08:07:31

标签: c++ precision cout setf

我有这段代码:

double a = 7.456789;
cout.unsetf(ios::floatfield);
cout.precision(5);
cout << a;

还有这一个:

double a = 798456.6;
cout.unsetf(ios::floatfield);
cout.precision(5);
cout << a;

第一个代码的结果是:7.4568 这几乎是我想要的(我想收到的是7.4567) 第二个结果:7.9846e + 05 这根本不是我想要的(我想要798456.6) 我想打印小数点后的4个数字

我该怎么做?

1 个答案:

答案 0 :(得分:4)

通过使用unsetf(),您告诉cout将其默认格式设置为浮点值。由于您需要小数点后的确切位数,因此您应该使用setf(fixed)std::fixed,例如:

double a = ...;
std::cout.setf(std::fixed, ios::floatfield);
std::cout.precision(5);
std::cout << a;

double a = ...;
std::cout.precision(5);
std::cout << std::fixed << a;