我如何将double[]转换为double,作为我的返回值?(不兼容类型错误)

问题描述 投票:-1回答:1

我很抱歉请求帮助,可能是基本的,但是,我尝试了每一个谷歌和YouTube的帖子(在我的水平),我似乎不明白。我试图做一个方法,返回我的根的多项式的第3次幂。代码可以单独工作;然而,当我试图放入一个返回函数时,我将返回值设为一个数组(因为将有3个根,也就是3个值要返回)。当我这样做的时候,我在返回函数旁边得到了一个错误,说["不兼容的类型:double[]不能被转换为double"]

    public class RootFinder {


        double[] roots = new double[3];

        double R(double a, double pa, double b, double pb, double c, double pc, double d, double rp4){
            /*Scanner sc = new Scanner(System.in);*/

     double dx, dc, root, root1 = 0, root2;

     double r1, r2, r3, remmainder, rp1, rp2, rp3;





     System.out.println("Enter the quotient coefficients followed by their power:");


  for(double i = -10; i<= 12; i++){ 

     dx = 1;
     dc = i;

      root = (-1*dc)/dx;

     r1 = a;
     r2 = (root*a)+b;
     r3 = (root*r2)+c;
     rp1 = pa-1;
     rp2 = pb-1;
     rp3 = pc-1;

     remmainder = (root*r3)+d;

     if(remmainder == 0){
         System.out.print("The Division equatates to: ");  


     roots[2] = ((-1*r2) + Math.sqrt((Math.pow(r2, 2)-(4*r1*r3))))/(r1*2); //quadratic formula (first root)
     roots[3] = ((-1*r2) - Math.sqrt((Math.pow(r2, 2)-(4*r1*r3))))/(r1*2); //quadratic formula (second root)

     //System.out.println("("+dx+"x"+dc+")"+"("+"x"+(double)root[2]+")"+"("+"x"+(double)root[3]+")");
     roots[1] = (dc*-1); // factor theorem a value (first root)


     break;
     }

         }

 return roots;   } 

}

非常感谢你的帮助,我已经花了5天的时间来解决这个问题,但我不明白该怎么解决。(我甚至尝试在每一个双数旁边加上"[]",但没有任何效果)

谢谢你,亚历杭德罗

java arrays methods return double
1个回答
1
投票

你只需要使用'double[]'而不是'double',因为你想返回一个数组而不是一个单一的值。所以,你应该写这样的东西。

double[] R(double a, double pa, double b, double pb, double c, double pc, double d, double rp4){ ....}

我提到了你试图不正确地访问数组中的值, 在Java中数组的索引是从0开始的, 所以要访问数组中的第一个值 你必须写array[0]而不是array[1].


1
投票

你的方法声明中指定了一个类型为 double 不过 roots 属于 double[] 即一个双数组。

方法声明中提到的返回类型与你试图返回的类型不匹配。

试着把你的方法声明改成this-。

double[] R(double a, double pa, double b, double pb, double c, double pc, double d, double rp4) {
//Your method code here
}
© www.soinside.com 2019 - 2024. All rights reserved.