【问题标题】:Java error: double cannot be converted to double[]Java 错误:double 无法转换为 double[]
【发布时间】:2016-12-20 17:01:12
【问题描述】:

我正在创建一个方法数组并不断收到错误:无法将双精度转换为双精度 []。 这是我的代码:

public static double[] calculate(double[] number1, double[] number2)
    {
        for( int i=0; i<10; i++)
        {
          return number1[i] * (6.67e-3) / (number2[i]*number2[i])
        }
    }

我不太明白为什么这是错误的,因为我的 for 循环不应该将数组转换为 double 吗?

【问题讨论】:

  • 你没有返回一个双精度数组......而且问题不会在这里发生,你甚至没有使用布尔值
  • 这个问题和类似的网站已经被问过很多次了。你搜索过错误信息吗?
  • 你想在方法内创建一个 double 数组,用 double 结果填充数组,然后在最后返回。
  • @AndrewL.:由于参数是数组,而且他使用了 for 循环,可能他想创建一个双数组结果,填充它,然后返回它。
  • 是的,我检查过,但他们提供的解决方案是创建我所做的 for 循环。例如,stackoverflow.com/questions/27381737/…

标签: java arrays error-handling compiler-errors double


【解决方案1】:

在建议修复编译器错误之前,首先需要了解原始数据类型和数组之间的区别。

doubleprimitive data type

array 是一个容器对象,可以包含相同类型的数据。 所以 double 和 double[] 是不一样的。

通过查看您的代码,您似乎想要返回一个由输入数组值计算得出的双精度值数组。

在这里,您需要先创建一个所需大小的数组ret,然后再将值分配给数组的各个元素。最后,在循环外返回数组。

 public static double[] calculate(double[] number1, double[] number2)
 {
        double[] ret = new double[10];
        for( int i=0; i<ret.length; i++)
        {
            ret[i] = number1[i] * (6.67e-3) / (number2[i]*number2[i]);
        }
        return  ret;
 }

【讨论】:

  • 谢谢!我明白我做了什么......我认为所需的大小将是自动的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-02
  • 1970-01-01
  • 2020-12-01
  • 2021-12-26
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多