Cout在不削减变量的情况下翻倍

时间:2011-12-12 12:46:04

标签: c++ iostream

这是一些“伪”c ++代码

double var = 5.5;
cout << var << endl;
double var2 = 6.0;
cout << var2 << endl;

5.5
6

问题是某些代码可能期望它是6.0。有人知道如何更改输出流。

好的,这是我试过的一些示例代码

 double t = 6.0;
  while (t > 0.1) {
    t = t - 0.1;
    cout << setprecision(2) << t << endl;
  }

输出

5.9
5.8
...
5.2
5.1
5
4.9
4.8
4.7

2 个答案:

答案 0 :(得分:4)

使用std::setprecisionstd::fixed

std::cout << std::fixed << std::setprecision(1) << var2 << std::endl;

请参阅演示:http://ideone.com/Arz85

只有std::setprecision(1)不起作用。您也必须使用std::fixed

不要忘记包括这个:

#include <iomanip>

我猜你在代码中写了using namespace std。如果是这样,那就不要那样做了。编写完全限定名称,例如std::cout,而不是cout。请参阅以下主题:

答案 1 :(得分:0)

使用ios_base标志,看看C ++ reference