-2

I need help returning a double average without using double parameters. So far I have all ints but its returning an int. I need the true average which should be 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;
    }
}
Unihedron
  • 10,902
  • 13
  • 62
  • 72

5 Answers5

2

You are performing Java's integer division, which must return another integer. You can force floating point division by using a double literal or by casting one of the numbers to a double. Specifying findAverage as a double is not enough. Try

findAverage = (a + b + c) / 3.0;
rgettman
  • 176,041
  • 30
  • 275
  • 357
0

Something like:

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

I don't really remember how it calls.

UPD: It calls "casting".

0

Try casting your parameters to double. findAverage = ( (double)( a + b + c ) )/3.0d;

DeathByTensors
  • 901
  • 1
  • 10
  • 16
0

just do:

findAverage = (double)(a + b + c)/3;
user3487063
  • 3,672
  • 1
  • 17
  • 24
0

You will have to typecast all of the int numbers to double.

findAverage = ((double)a + (double)b + (double)c)/3;
CJ Jacobs
  • 299
  • 1
  • 16