1
我有這樣的方法來解決,返回2種所述增量類型的陣列的二次方程(如果小於零個比有複雜的解決方案)問題與EQ複數值解算器的字符串返回
public static final String[] quadEquationSolver(double a, double b, double c) {
double delta = (b * b) - 4 * a * c;
double q;
if (delta < 0) {
double deltar = Math.abs(Math.sqrt(delta));
q = ((b < 0) ? -0.5 * (b - deltar) : -0.5 * (b + deltar));
double t0 = q/a;
double t1 = c/q;
// return sorted array
return (t0 > t1) ? new String[] { t1 + "i", t0 + "i" }
: new String[] { t0 + "i", t1 + "i" };
} else {
double deltar = Math.sqrt(delta);
q = ((b < 0) ? -0.5 * (b - deltar) : -0.5 * (b + deltar));
double t0 = q/a;
double t1 = c/q;
// return sorted array
return (t0 > t1) ? new String[] { t1 + "", t0 + "" }
: new String[] { t0 + "", t1 + "" };
}
}
不幸時delta<0
我得到一個只包含NaNi
值,儘管正確的結果String數組,但我不明白爲什麼
我在想我怎麼沒注意到這個大錯誤......謝謝! – AndreaF