我有这段代码:
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个数字
我该怎么做?
答案 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;