2015-02-11 146 views
1

我目前正在为我的高中计算机科学类做一项任务,我遇到了一个问题,我得到的错误“double []不能转换为double”。然而,我很困惑,因为我告诉一个特定的方法返回一个双数组。无法将双精度数组转换为数组

public static double [] getHits(int attempts) { 
    Random ranInt = new Random(); 
    int range = ranInt.nextInt(2) - 1; 

    double hits = 0; 
    double [] hitsInTrial = new double[attempts]; 
    double radius = 1; 
    double x = Math.pow(range, 2); 
    double y = Math.pow(range, 2); 

    for(int index = 0; index < attempts; index++) 
    { 
     if(!(x + y <= radius)) 
     { 
      hits++; 
     } 

     hitsInTrial[index] = hits; 
    } 

    return hitsInTrial; 
} 

^这个方法应该返回hitsInTrial的双阵列(我觉得如果有些数据是错误的,但我担心的是我得到了我的问题解决后)。

public static void main() 
{ 
    Scanner in = new Scanner(System.in); 

    System.out.print("How many darts/trials?: "); 
    int dartThrows = in.nextInt(); 

    double[] trials = new double[10]; 
    double[] hits = new double[dartThrows]; 

    for(int index = 0; index < trials.length; index++) 
    { 
     hits[index] = getHits(dartThrows); 
    } 
} 

我得到命中[index] = getsHits(dartThrows)中的错误;区。我很困惑,因为方法getHits被告知返回一个双精度数组,但我得到了“不能转换”的错误。任何帮助将不胜感激,因为作为一个新手,我不太确定有什么问题。

我省略了两种方法,一种是使用数据计算pi,一种是打印结果。这些方法没有产生错误,但如果我需要提供它们来帮助解答,请告诉我。

回答

6

getHits()方法返回double数组:double[]。而你的hits[]阵列是double[]型的,所以它的元素是double类型。您尝试为其分配double[]返回值。

1

hits = getHits(dartThrows);

您正在尝试双打的阵列分配到阵列中的双重元素。

hits[a] // Represents a double element at index a not the array itself 
+0

雅我就是这么做的 – Kode 2015-02-11 20:28:02

相关问题