2014-09-03 75 views
-2

我需要不使用雙參數返回雙平均值的幫助。到目前爲止,我有所有ints,但它返回int。我需要真正的平均值應該是2.66666666667返回所有輸入的真實平均值。參數都是整數

public class NumAvg { 
    public static void main(String[] args) { 
     int a, b, c; 
     double average; 
     a = 5; 
     b = 2; 
     c = 1; 
     average = findAverage(a, b, c); 
     System.out.print(average); 
    } 
    public static double findAverage(int a, int b, int c) { 
     double findAverage; 
     findAverage = (a + b + c)/3; 
     return findAverage; 
    } 
} 

回答

2

您正在執行Java的整數除法,它必須返回另一個整數。您可以使用double文字或將其中一個數字轉換爲double來強制進行浮點除法。將findAverage指定爲double是不夠的。嘗試

findAverage = (a + b + c)/3.0; 
+0

非常感謝!這解決了我的問題。 – Junior110697 2014-09-03 00:50:40

0

喜歡的東西:

findAverage = (double) (a + b + c)/3.0; 

我真的不記得它是如何調用。

UPD:它稱之爲「鑄造」。

0

試着將你的參數鑄造成雙倍。 findAverage = ((double)(a + b + c))/3.0d;

0

只是做:

findAverage = (double)(a + b + c)/3; 
0

你將不得不全部int數字強制轉換爲double

findAverage = ((double)a + (double)b + (double)c)/3; 
相關問題