簡體   English   中英

類型不匹配:無法將 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)返回類型為 object 的double

當你想調用一個方法並在變量中獲取結果時,你需要確保變量與方法返回的類型相同。

您需要更改此行:

double[] med = median(numbers);

double med = median(numbers);

此處,變量的類型為double並且該方法返回double 兩種類型都匹配,編譯器很高興並且您的代碼可以編譯。 但在你的情況下,類型是double[]並且該方法返回一個double object ...沒有匹配項,所以你的代碼無法編譯

您的 median() 方法應該返回一個“double”值而不是一個 double 值數組。

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

您正在返回一個 double 值,但您將其返回到一個 double 數組,類型不匹配。

導入 java.util.*; 公共 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];
    }
}

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM