2014-02-16 17 views
0

我正在編寫一個程序,它接受用戶輸入並獲取其平均值。我需要平均總是有三個小數點。 浮動不起作用。 一些在線教程建議使用setprecision()並修復。這是行不通的,因爲我不知道這個號碼會有多長。如何使一個雙精度值總是有三個小數點? C++

你推薦數轉換成字符串,得到的長度,將其轉換回雙及用途:setprecision(string.length減+ 3)

感謝

+0

[浮點](http://en.wikipedia.org/wiki/Floating_point)在[IEEE 754](http://en.wikipedia。)中沒有小數位。組織/維基/ IEEE_754)。只有他們的輸出表示有。 –

回答

1

試試這個:

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

int main() 
{ 
    float ex[] = { 0.12345, 1.2345, 12.345}; 

    cout << setprecision(3) << fixed; 

    for(int i = 0; i < 3; ++i) 
    { 
     cout << ex[i] << endl; 
    } 

    return 0; 
} 

這給輸出:

0.123 1.235 12.345

這樣應該可以工作..

1

我建議使用全精度在計算過程中加倍,然後以小數點後三位顯示最終結果。

+0

我該怎麼做? – AqeelAT

0
#include <iostream> 
#include <iomanip> // header file for setprecision() 
using namespace std; 

int main() 
{ 
    double input[4] = {1.000 , 2.0000 , 3.00 , 5.235 }; 
    double answer = 0 , sum = 0 ; 
    int count = 0; 

    for(int i = 0; i < 3; ++i) 
    { 
      sum+=input[i]; 
      count++; 
    } 

    answer = sum/count; 

    cout.precision(3); 
    cout << answer << endl; 

    return 0; 
} 
相關問題