2014-02-20 77 views
0

我正在研究需要通過cout在一行上打印數組並顯示2個小數位的應用程序。目前,我的代碼打印前兩個項目有2位小數,然後切換到1C++ - 爲什麼我的cout代碼顯示小數不一致?

下面是代碼:

cout << " Inches "; 
    cout << showpoint << setprecision(2) << right; 
    for (int i = 0; i < 12; i++) 
    { 
     cout << setw(5) << precipitation[i]; 
    } 
    cout << endl; 

,這裏是輸出:

Inches 0.72 0.89 2.0 3.0 4.8 4.2 2.8 3.8 2.7 2.1 1.6 1.0

燦有人請告訴我爲什麼這種變化是正在發生,我能做些什麼來解決它?

謝謝

+1

哪些類型的這些變量? –

回答

5

您需要使用「固定」模式。在默認浮點模式下,precision()設置要顯示的有效數字的數量。在「固定」模式下,它設置小數點後的位數。案例分析:

#include <iostream> 
using namespace std; 
int main(int argc, char **argv) { 
    float pi = 3.14; 
    cout.precision(2); 
    cout << pi << endl; 
    cout << fixed << pi << endl; 
} 

給人的輸出:

3.1 
3.14 

HTH。

+0

完美!謝謝,肯! – JFXNerd

1

如果你只需要添加COUT < <固定輸出語句之前除了showpoint和setprecision,你會得到所有輸出格式保持一致。

見下文:現在

#include <iostream> 
#include <iomanip> 
using namespace std; 

int main() 
{ 
    double precipitation[12] = { .72, .89, 2, 3, 4.8, 4.2, 2.8, 3.8, 2.7, 2.1, 1.6, 1 }; 
    cout << " Inches "; 
    cout << showpoint << fixed << setprecision(2) << right; 
    for (int i = 0; i < 12; i++) 
    { 
     cout << setw(5) << precipitation[i]; 
    } 
    cout << endl; 

    return 0; 
} 

,輸出爲波紋管:

Inches 0.72 0.89 2.00 3.00 4.80 4.20 2.80 3.80 2.70 2.10 1.60 1.00 
相關問題