类型不匹配:无法将 double 转换为 double[]

Type Mismatch: Can't convert double into double[]

当我 运行 这个 java 代码时,我得到了错误。我是 java 的新手。谁能帮忙。


package raza.project.arrays;
import java.util.*;
public class arraysLearning {

public static void main(String[] args) {
  int [] numbers = { 25,36,38,63,89,52,74};
  double[] med = median(numbers);
}
  //Return the median value of an array of numbers
//without changing the parameter array
public static double median(int[] numbers) {
 int[] tmp = Arrays.copyOf(numbers, numbers.length);
 Arrays.sort(tmp);
 int mid = tmp.length/2; // Note: int division
 if (tmp.length%2 == 0) { // even length?
 return (tmp[mid-1]+tmp[mid])/2.0; //float division
 }
  else {
     return tmp[mid];
     }
  }
}

java编译器是最新的jdk14

此方法:public static double median(int[] numbers) returns double.

类型的对象

当你想调用一个方法并在变量中获取结果时,你需要确保该变量与方法返回的类型相同。

您需要更改此行:

double[] med = median(numbers);

double med = median(numbers);

这里,变量是类型double,方法returns是double。两种类型都匹配,编译器很高兴并且您的代码可以编译。但是在你的情况下,类型是 double[] 并且方法 returns 是一个 double 对象......没有匹配,所以你的代码无法编译

您的 median() 方法应该return一个“双精度”值而不是一个双精度值数组。

public static void main(String[] args) {
  int[] numbers = {25,36,38,63,89,52,74};
  double med = median(numbers); // remove [] on this line.
}

您返回的是双精度值,但返回的是双精度数组,类型不匹配。

进口java.util.*; public class 测试 {

public static void main(String[] args) {
    int [] numbers = { 25,36,38,63,89,52,74};
    double med = median(numbers);
}
//Return the median value of an array of numbers
//without changing the parameter array
public static double median(int[] numbers) {
    int[] tmp = Arrays.copyOf(numbers, numbers.length);
    Arrays.sort(tmp);
    int mid = tmp.length/2; // Note: int division
    if (tmp.length%2 == 0) { // even length?
        return (tmp[mid-1]+tmp[mid])/2.0; //float division
    }
    else {
        return tmp[mid];
    }
}

}