Probleme beim casten von double zu int

GH05T

Neues Mitglied
Moin liebe Java-Community,
ich bin erst noch voll neu im Java programmieren, hab mir schon zahlreiche videos angesehen, und bei dem Versuch jetzt meinen ersten Code zu schreiben bleibe ich schon am Anfang hängen und komme einfach nicht weiter.
Ich möchte gerne, dass mein Programm die Nullstellen einer quadratischen Funktion ax^2+bx+c berechnet. Ich habe a,b,c zunächst als double deklariert und möchte in der main methode eine Überprüfung einbauen, ob die werte die vom User eingegeben sind, nicht schon int sind und keine double. Wenn es int sind, dann sollen die auch als diese ausgegeben werden, ohne .0
if(a % 2 == 0.0){
a = (int) a;
}

if(b % 2 == 0.0){
b = (int) b;
}

if(c % 2 == 0.0){
c = (int) c;
}

System.out.println("Deine quadratische Funktion lautet also: \n"
+ a + "x^2 + " + b + "x + " + c );

Nur versteh ich nicht, wieso er nach wie vor die Werte als double rausgibt und dann sowas steht wie: deine quadr funktion lautet: 2.0x^2 + 5.0x +7.0

Bestimmt lässt sich das einfach lösen, nur komme ich einfach nicht drauf. Danke schonmal im voraus...
 
Naja, deine Variablen sind als double deklariert, und wenn du einem double einen int zuweist, wird das automatisch zu double gecastet, da steht also a = (double ) (int) a; und führt nur dazu, das die Nachkommestelle auf 0 gesetzt wird - was aber an der Zahl der nichts änderst, das prüfst du ja vorher.

Für dein Problem solltest du dir mal String.format angucken 😉
 
Danke dafür.
Eine andere Frage, ich habe die Mitternachtsformel jetzt eingefügt, und bei quadratischen Funktionen, die sich lösen lassen, ist alles gut, nur wenn dies nicht geht spuckt die Konsole NaN raus. Wie müsst ich einen code so schrieben, dass statt NaN ich dem Benutzer sage, dass es keine Lösung gibt?
 

Zurück
Oben