p q formel gibt zum Teil falsche Werte aus

dxlegends

Mitglied
Hallo, ich versuche mich grade am Java lernen.
Nun bin ich grad dabei einen p-q-Formelrechner zu erstellen.
Allerdings gibt mir dieser mal falsche, mal richtige ergebnisse aus.
Ich glaube, dass er mir bei einem Ergebnis mit Nachkommastellen Fehler reinhaut.
Vielleicht kann mir einer sagen, wo der Fehler liegt 🙂
MLG
dxlegends
P.S. hier der code:

import java.util.Scanner;

public class pq{
public static void main (String[]args) {

Scanner scanner = new Scanner(System.in);
System.out.println("Sie wollen also eine quadratische Gleichung nach der");
System.out.println("p-q-Formel lösen (ax^2+bx+c=0)");
System.out.println("Bitte geben Sie a ein:");
int a = scanner.nextInt();
System.out.println("Bitte geben Sie b ein:");
int b = scanner.nextInt();
System.out.println("Bitte geben Sie c ein:");
int c = scanner.nextInt();

double p = b / a;
double q = c / a;
double r = p / 2;
double s = Math.pow(r,2);
double t = s - q;


double x1 = - r + Math.sqrt(t);
double x2 = - r - Math.sqrt(t);

System.out.println("x1 hat den Wert" + x1 + ".");
System.out.println("x2 hat den Wert" + x2 + ".");
}
}
 
Bitte immer JAVA Tags verwenden, wie es auch groß in ROT über dem Eingabefeld steht

das problem ist wohl dass int/int immer einen int zurück gibt

d.h bei deiner Berechnung
Code:
double p = b/a
kommt für p immer eine ganze Zahl zurück bei der eben die Kommastellen abgeschnitten wurden

daher schreib lieber
Code:
double p = (double)b/(double)a

oder lies von der CommandLine gleich einen double ein

z.B.
Code:
double a = scanner.nextInt()
oder
Code:
double a = scanner.nextDouble()
 
Vielen Dank für die schnelle und vor allem richtige Antwort 🙂
Beim nächsten Mal werde ich auch auf die Java-Tags achten, ich hoffe, als erst-poster wird mir das nochmal vergeben 🙂
MLG
Legends
 
1. War das Problem nicht die PQ-Formal an sich sondern ein "cast"-Problem.
2. Les nächstes mal den Thread vorm Posten, vor allem wenner sowenige Posts hat.
3. Schau vorm Posten mal auf das Datum des Threads. Der hier ist etwas mehr als 6 Monate alt und das Problem war gelöst.
 
ich hab grad keine Lust mich einzuloggen ^^
Ja, es nervt manchmal ein wenig, wenn eine Forenleiche ausgegraben wird, insbesondere wenn man ne Email-Benachrichtigung darüber erhält.
Und auch wenn ich selber hier noch nicht viel mehr Posts habe, sei es dir als Erstposter verziehen ^^
Aber 2 Dinge am Rande erwähnt:
Lies bitte beim nächsten Mal die bereits gegebenen Antworten und Fragen richtig durch, denn da sagte mein Vorredner schon das, was ich sonst hier wiederholen würde.

Und als 2. das Wichtigere:
Mit deiner Antwort wäre weder mir noch irgendwem sonst geholfen worden.
Zumindest in Fällen von Fragen oder Problemen sind sinnvolle Antworten besser und erwünschter als deine gegebene.
Natürlich gibt es viele Hilfe-Seiten zur p q Formel, aber wäre ich im Netz mit dem Problem, bei dem ich nicht wusste wo der Fehler lag, fündig geworden, hätte ich hier wohl kaum einen Post gemacht.
Erspar dir bitte beim nächsten Mal eine dumme, schnippische oder provozierende Antwort und versuch lieber das Problem zu lösen, was es hier zum jetzigen Zeitpunkt ja garnicht mehr gab 😉
MLG Legends
 

Neue Themen


Zurück
Oben