二次方程,无法弄清楚语法错误

时间:2013-07-19 19:10:03

标签: java

我正在完成一项学校作业。我应该实现一个类并提供方法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下我收到一条错误消息:Method pow不适用于参数String

这是我的整个代码:

       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;

  }

}

由于这是一项学校作业,我正在寻找解决这个问题的指导。

谢谢。

2 个答案:

答案 0 :(得分:8)

您的第一个问题是您无法使用/&gt;一起。这不是一个正确的操作。 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html

第二个问题是因为Math.pow需要两个数字。你有一个字符串。这就像试图获得苹果这个词的力量。你不能这样做。您必须先将该字符串转换为int。 How to convert a String to an int in Java?

答案 1 :(得分:2)

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

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将修复它。