2014-02-26 92 views
-1

我想在console.WritLine中顯示平均值的2個小數點。現在它顯示一個整數。如何在雙精度型中顯示2個小數點

string input = ""; 
int total=0 ; 
int numbersEntered =0 ; 
double average=0.00 ; 

total += Convert.ToInt32(input); 
numbersEntered++; 
average = (total/numbersEntered); 
Console.WriteLine("Total: {0}\t Numbers Entered: {1}\t Average: {2:#.##}\t", total, numbersEntered, average); 
Console.ReadKey(); 
+1

您可能需要先閱讀一些文檔:http://msdn.microsoft.com/en-us/library/dwhawy9k(v=vs.110).aspx –

+0

Math.Round(average,2) –

回答

1

我認爲這是C#?您可能想要添加標籤以獲得更好的答案。如果是,嘗試用這個替換您Console.WriteLine

Console.WriteLine("Total: {0}\t Numbers Entered: {1}\t Average: {2:F2}\t", 
        total, numbersEntered, average); 

我發現這個文檔是herehere

2

申報totalnumbersEntered也是雙倍。你正在使用int,然後用整數除整數將返回整數,而不是帶有2個小數點的double。

string input = ""; 
double total=0 ; 
double numbersEntered =0 ; 
double average=0.00 ; 

total += Convert.ToInt32(input); 
numbersEntered++; 
average = (total/numbersEntered); 
Console.WriteLine("Total: {0}\t Numbers Entered: {1}\t Average: {2:#.##}\t", total, numbersEntered, average); 
Console.ReadKey(); 
0

變化

average = (total/numbersEntered); 

average = ((double)total/numbersEntered); 

操作整數/兩者之間確實整數除法。只有在執行分割之後,結果(商)才從int轉換爲double,但到那時精度已經丟失。

我將其中一個操作數(左邊的)從int轉換爲double;那麼右操作數也會自動轉換(從intdouble的轉換是隱含的)。當/運算符的操作數是double時,執行浮點除法,這是您想要的。

相關問題