如何存储从以数组为参数且返回类型为double的方法传递的值?

时间:2019-05-15 19:08:22

标签: java methods return-type

我有一个以数组为参数的方法,我想从中传递一个双精度值,但不能存储从该方法传递的值。

public static void main(String[] args) {

    double [] temperature = {2.5, 10.3, 50.0, 66.7, 77.9, 33.2, 0.33};

    double final = averageTemp(temperature);

    System.out.println(final);
}
public static double averageTemp(double [] temp){
    int size =temp.length ;
    double total = 0;
    for(int i =0; i<size; i++){
        total += temp[i];
    }
    double average =  total/size;

    return average;
}

我希望将返回的“平均值”存储在“最终”变量中并进行打印。 但是出错了。

2 个答案:

答案 0 :(得分:1)

“最终”是Java中的关键字。

选择其他变量名称。

答案 1 :(得分:0)

您可以尝试以下方法:

double [] temps = {2.5, 10.3, 50.0, 66.7, 77.9, 33.2, 0.33};

OptionalDouble od = DoubleStream.of(temps).average();

od.ifPresent(average -> {
   System.out.println(average);
});

DoubleStream有一个average方法,该方法计算数组中double的平均值并返回OptionalDouble。万一没有平均值要返回,则返回OptionalDouble,例如,如果发送空数组,则不应返回0,因为0仍然是数字。使用OptionalDouble,您可以检查平均值是否存在,如果存在,则可以使用optionalDouble.get();或我使用的方法来获取平均值。

您可以在averageTemp方法内使用此DoubleStream对象。将double final = ...;的变量更改为double average = ...;