#1 4. Februar 2010 p-q-Formel | NaN (Not a Number) hallo, ich bin kompletter anfänger in java und soll mit meinem bis jetzt begrenztem wissen eine klasse zur berechung der koeffizienten einer quadratischen gleichung ausrechnen. das gerüst steht soweit, nur wird mir am ende statt der einzelnen werte stets "NaN" (not a number) ausgegeben. mein programmcode: Code: import java.io.*; public class QuadratischeGleichungKoeffizienten{ public static void main(String [] args) throws IOException{ bestimmePUndQ(); } public static void bestimmePUndQ() throws IOException{ double p = 0; double q = 0; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("\nWaehlen Sie p:\n"); p = Double.parseDouble(br.readLine()); System.out.println("\nWaehlen Sie q:\n"); q = Double.parseDouble(br.readLine()); System.out.print("\n\nx1 = " + berechneNullstelleX1(p,q)); System.out.print("\t x2 = " + berechneNullstelleX1(p,q) + "\n\n"); System.out.println("\nerneut berechnen? 0/1 (Nein/Ja)"); int a = Integer.parseInt(br.readLine()); fortsetzen(a); } public static double berechneNullstelleX1(double p, double q){ double x1 = 0; x1 = 0.5-(p-(Math.sqrt((p*p)-(4*q)))); return x1; } public static double berechneNullstelleX2(double p, double q){ double x2 = 0; x2 = 0.5-(p+(Math.sqrt((p*p)-(4*q)))); return x2; } public static void fortsetzen(int a) throws IOException{ switch (a){ case 1 : bestimmePUndQ(); break; default : System.out.println("\nProgramm beendet..."); break; } } } wo liegt der fehler? + Multi-Zitat Zitieren
#2 4. Februar 2010 AW: p-q-Formel | NaN (Not a Number) Math.sqrt((p*p)-(4*q)) mit p = 2, q = 3 (p*p)-(4*q) = 4 - 12 = -8 wurzel aus -8 is ne imaginäre zahl <- da haste deinen fehler Code: x1 = -p/2 + Math.sqrt( (p*p)/4 - q) so in etwa sollte die formel richtig sein + Multi-Zitat Zitieren
#3 4. Februar 2010 AW: p-q-Formel | NaN (Not a Number) Der Fehler ist nicht, dass NaN rauskommt. Bei manchen Werten kommt einfach kein richtiger Wert raus bei der P-Q-Formel. Abgesehen davon ist jedoch deine Formel zur Berechnung falsch. Richtig wäre sie so: Code: x1 = (-(p/2)) + Math.sqrt( ((p*p) / 4) - q); Bzw. für x2 mit einem - vor Math.sqrt. + Multi-Zitat Zitieren
#4 4. Februar 2010 AW: p-q-Formel | NaN (Not a Number) wenn du p quadrierst, dann auch die 2 + Multi-Zitat Zitieren
#5 4. Februar 2010 AW: p-q-Formel | NaN (Not a Number) Tatsache, da war wieder die Flüchtigkeit + Multi-Zitat Zitieren