为什么我在这里收到此错误?

时间:2012-12-03 20:57:55

标签: java

void quadratic() {

    if((b*b-4*a*c) < 0){
        System.out.println("The answer is imaginary.");
    }
    else {
        System.out.println("The two root's x values of the quadratic function " + a +"x^2 + " + b + "x + " + c + " are "
                    + (-b + Math.sqrt(b*b+4*a*c)/2a));
    }
}

我收到错误

  

')'预计',';'预计

在最后一行代码中,即使它们已被包含在内。我该如何防止这种情况?任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:5)

您缺少2和

之间的运算符
Math.sqrt(b*b+4*a*c)/2a

应该是这样的:

Math.sqrt(b*b+4*a*c)/(2*a)

答案 1 :(得分:1)

2a更改为(2*a)

Math.sqrt(b*b+4*a*c)/(2*a)

您还可以将判别式的计算分解出来,以避免必须两次执行:

    double discriminant = (b*b-4*a*c);
    if(discriminant < 0){
        System.out.println("The answer is imaginary.");
    }
    else {
        System.out.println("The two root's x values of the quadratic function " + a +"x^2 + " + b + "x + " + c + " are "
                + (-b + Math.sqrt(discriminant)/(2*a)));
    }

答案 2 :(得分:1)

你不能写

/2a

这使解析器感到困惑。我期望你想要的是

/(2 * a)