Search code examples
javaincompatibletypeerror

Incompatible types on method


import java.util.*;
import java.lang.Math;

class StandardDeviation{
  public static void main(String args[]){
    ArrayList<Double> numbers = new ArrayList<Double>();
    Scanner kb=new Scanner(System.in);
    double in=kb.nextDouble();
    while(in!=-1){
        numbers.add(kb.nextDouble()); 
    }
    double avg = getAvg(numbers);
    double stdD = getD(avg,numbers);// tells me these are incompatible types
    System.out.printf("%f\n",stdD);
  }

  public static double getAvg(ArrayList<Double> numbers){
    double sum = 0.0;
    for (Double num : numbers){
        sum+= num;
    }
    return sum/numbers.size();
  }

  public static void getD(double avg, ArrayList<Double> numbers){
    ArrayList<Double> newSet = new ArrayList<Double>();
    for (int i = 0; i < numbers.size(); i++){
        newSet.add(Math.pow(numbers.get(i)-avg,2));
    }
    double total = 0.0;
    for (Double num : newSet){
        total += num;
    }
    double mean =(total/numbers.size());
    return Math.sqrt(mean);
  }
}

Im so tired and I got this far into this exercise, I'm not even sure if it prints out the correct answer but right now its telling me double stdD = getD(avg,numbers); that there are incompatible types, not sure what is incompatible Thanks in advance


Solution

  • getD is void, it doesn't return a value. It's currently

    public static void getD(double avg, ArrayList<Double> numbers){
    

    but it should probably be

    public static double getD(double avg, ArrayList<Double> numbers){