2011-12-12 76 views
0

下面是一些「僞」 C++代碼COUT雙打無切削變量

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 

回答

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。請參閱以下主題:

+0

感謝這使得。特別是固定()一個很重要! –

+0

我同意在這裏使用命名空間std很糟糕,但至少從我的角度來看,它確實有助於閱讀代碼。 –

0

使用的ios_base標誌,看看在C++ reference