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

亚历山德罗·阿波罗(Alexandro Apollo):

很抱歉要求您提供基本的帮助;但是,我尝试了每条Google和YouTube帖子(以我的水平),但我似乎无法弄清楚。我试图建立一种方法,将多项式的根返回三阶幂。该代码可以单独工作。但是,当我尝试放入返回函数时,我会将返回值设为一个数组(因为将有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天的时间尝试对其进行修复,但是我不知道该如何解决。(我什至尝试将“ []”放在每个双引号旁边,但什么也没做)

谢谢亚历杭德罗

通过Kopylchak:

您只需要使用'double []'而不是'double'即可返回数组而不是单个值。因此,您应该编写如下内容:

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

我提到您尝试错误地访问数组中的值,在Java中数组索引从零开始,因此要访问数组中的第一个值,您必须编写array [0]而不是array [1]。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章