我将double转换为int,但仍有错误,解释原因?

Ann*_*ova 0 java double int compiler-errors

    int x1, x2; double d;
    d = (int)(Math.sqrt(b*b - 4*a*c));
    if (d >= 0) {
        x1 = (-b + d) / 2*a;    // on this line 
Run Code Online (Sandbox Code Playgroud)

"类型不匹配:无法从double转换为int"

Daw*_*ica 7

x1不应该是一个int.看起来你用它来存储二次方程的根,当然这可能不是一个整数.

改变x1(也可能是x2)成为一个double问题将会消失.

顺便说一句,你想要括号2 * a,否则你实际上a是在分子上,而不是分母.