Java 二次方程式,无法找出语法错误

Java 二次方程式,无法找出语法错误,java,Java,我正在做一项学校作业。我应该实现一个类并提供getSolution1和getSolution2方法。然而,我的代码有两个我无法解决的问题 问题#1在这一行: solution1= ((-1*b)/> + Math.sqrt(Math.pow(b,2)-(4*a*c))); 编译器告诉我:标记“>”上出现语法错误,请删除此标记。我不知道我的语法是否有问题 问题2在输出线上: String quadEquation= "The quadratic equation is "+ a + Mat

我正在做一项学校作业。我应该实现一个类并提供getSolution1和getSolution2方法。然而,我的代码有两个我无法解决的问题

问题#1在这一行:

solution1= ((-1*b)/> + Math.sqrt(Math.pow(b,2)-(4*a*c)));
编译器告诉我:标记“>”上出现语法错误,请删除此标记。我不知道我的语法是否有问题

问题2在输出线上:

String quadEquation= "The quadratic equation is "+ a + Math.pow(("x"),2) + " + " + b+"x"+ " + " + c+ " =0";
在Math.pow下,我得到一个错误:方法pow不适用于参数字符串

这是我的全部代码:

       public class QuadraticEquation

{

  double a;
  double b;
  double c;
  double solution1;
  double solution2;

QuadraticEquation (double a, double b, double c){

     a= this.a;
     b= this.b;
     c= this.c;
}

public boolean hasSolution (){

  if ((Math.pow(b,2))- (4*a*c)<0){

    return false;
  }

  else

  {
    return true;
  }
}

 public double getSolution1 (double a, double b, double c)

{

  if (hasSolution){

      solution1= ((-1*b) + Math.sqrt(Math.pow(b,2)-(4*a*c))) / 2*a;

    return solution1;

  }

}

 public double getSolution2 (double a, double b, double c){

    if (hasSolution){

        solution1= ((-1*b) - Math.sqrt(Math.pow(b,2)-(4*a*c))) / 2*a;
    return solution2;
}

}

public String toString (double a, double b, double c){

    String quadEquation= "The quadratic equation is "+ a + "x^2" + " + " + b+"x"+ " + " + c+ " =0";

    return quadEquation;

  }

}
公共类求积方程
{
双a;
双b;
双c;
双溶液1;
双溶液2;
二次方程式(双a,双b,双c){
a=这个。a;
b=这个。b;
c=这个。c;
}
公共布尔解(){

如果((Math.pow(b,2))-(4*a*c)您的第一个问题是不能一起使用/>。这不是一个正确的操作。

第二个问题是因为Math.pow需要两个数字。其中有一个字符串。这就像试图获得单词apple的幂。你做不到。你必须首先将该字符串转换为int

Java中没有
/>
这样的东西

String quadEquation= "The quadratic equation is "+ a + "x^2" + " + " + b+"x"+ " + " + c+ " =0";
Math.pow需要数字,而您传递的是字符串“x”。符号“^”通常用于表示的是的幂,因此x^2是x的2的幂。我不认为有一个简单的解决方案可以在标准输出中写入上标

如果方程没有解,Java无法理解返回什么

public double getSolution2 (double a, double b, double c){

    if (hasSolution){
        solution1= ((-1*b) - Math.sqrt(Math.pow(b,2)-(4*a*c))) / 2*a;
        return solution2;
    }
    return -1; // or throw an exception.
}

返回-1将修复它。

谢谢,当我进行更改时,它消除了错误。但是当我进行更改时,我意识到这行代码:public double getSolution1(double a,double b,double c,boolean hasSolution)不正确。它不会返回double值。因此我去掉了布尔hasSolution。但是现在我的语句if(hasSolution)是说没有初始化。@user2559274我不知道你说的是什么意思。返回一个double是完全合理的。为什么你认为那一行不正确。在问题中添加新代码,这样我就可以回答了。只需要几件事..if(hasSolution)就够了..不需要“==true”。此外,在方法中定义solution1和solution2,而不是在类中。您甚至不需要变量。只需执行
返回((-1*b)/>-Math.sqrt(Math.pow(b,2)-(4*a*c)))谢谢你,现在我明白了,这似乎很明显。但有好几天我都没明白。我很感激你的解释+1的解释和诚实。
public double getSolution2 (double a, double b, double c){

    if (hasSolution){
        solution1= ((-1*b) - Math.sqrt(Math.pow(b,2)-(4*a*c))) / 2*a;
        return solution2;
    }
    return -1; // or throw an exception.
}