Реализация вашего математического уравнения верна, но вы должны заключить его в квадратные скобки.Например;
double root1 = (-coefB + Math.sqrt(getDiscriminant()))/ 2 * coefA;
Здесь (-coefB + Math.sqrt(getDiscriminant()))
уравнений равно , делив на 2
.После этого умножение на coefA
.Будь осторожен.Измените свою логику в этом примере;
double root1 = (-coefB + Math.sqrt(getDiscriminant()))/ (2 * coefA);
Поэтому примените к другим полям, чтобы получить правильный результат.
Ваш два метода должны быть изменены.
static double getRoot1()
{
double root1 = (-coefB + Math.sqrt(getDiscriminant()))/ (2 * coefA);
return root1;
}
static double getRoot2()
{
double root2 = (-coefB - Math.sqrt(getDiscriminant()))/ (2 * coefA);
return root2;
}
В болеедеталь, таблица приоритетов операторов;
Operators Precedence Associativity
postfix increment and decrement ++ -- left to right
prefix increment and decrement, and unary ++ -- + - ~ ! right to left
multiplicative * / % left to right
additive + - left to right