我有一个以数组为参数的方法,我想从中传递一个双精度值,但不能存储从该方法传递的值。
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;
}
我希望将返回的“平均值”存储在“最终”变量中并进行打印。 但是出错了。
答案 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 = ...;