Wie kann ich in Java auf die nächste Zahl aufrunden?
Schön guddn Abend allerseits und ein herzerfrischendes Moin Moin :)
Hab mir gerade einen abgefeiert, als ich Version 1.0 meiner mehr oder weniger erweiterten Rechner-App fertiggestellt habe. Man gibt eine Dezimalzahl ein und bekommt mit vorgegeben Operatoren und Rechnungswerten ein gezieltes Ergebnis raus (halt erstmal was einfaches für einen Java-Noob wie mich)
Jetzt meine Frage: Ich bekomme (logischerweise) Dezimalzahlen ausgegeben, durch Double, Floats und allem, aber wie bekomme ich es hin, dass wenn "12,675356122" errechnet wurde, auf die nächste Zahl aufgerundet wird und bei <"12,49" entsprechend abgerundet wird (auf eine einstellige Zahl, wenn möglich)?
Kann mich bitte jemand verlinken zu meinetwegen Tutorials, Stackoverflow oder irgendwas, was meinem "Problem" nahe kommt?
Danke vielmals und noch einen entspannten Abend, zieht euch warm an, wir kriegen 35°C ;)
2 Antworten
Kommt etwas darauf an, was bei negativen Zahlen geschehen soll.
Für positive Zahlen ist das Folgende wohl am schnellsten:
double ausgangszahl ;
int gerundeteZahl;
ausgangszahl = komplizierteRechnung(...) ;
gerundeteZahl = (int) (ausgangszahl + 0.5);
Bei negativen Zahlen will man aber oft nicht auf die nächst höhere Zahl runden, sondern manchmal auch auf die nächst kleinere. Obige Formel ergäbe für -3.7 die ganze Zahl -3. Hingegen wird -3.1 nun auf -2 aufgerundet!
-3.7 z. B. soll wie erwähnt oft auf -4 gerundet werden. Die folgende Formel verhält sich bei positiven Zahle exakt wie die obige Formel, doch negative Zahlen werden auch abgerundet.
gerundeteZahl = (int) (ausgangszahl + (ausgangszahl > 0 ? 0.5 : -0.5));
Danke, hab gerade vor ein paar Minuten den Durchbruch mit etwas ähnlichem errungen :D
Ich gluabe, mir wäre momentan am meisten geholfen, wenn man mir sagen könnte, wie man ".0" wegkriegt :/
Dankeschön, sowas habe ich gesucht :)
Werde mich mal durcharbeiten und schauen, wie weit mich das bringt!
Wenn du die Apidocs lesen und selbstständig durchsuchen kannst, bist du besser im Programmieren, als 95% der ganzen Bukkit-Kiddos.
Ich beneide dich einfach mal anstandshalber um diese Erfahrung :) (nicht böse gemeint)
Danke dennoch, schön, dass es hier so viele helfende Hände gibt ;)
Öhm... Warum tritt bei int folgender Fehler auf: ich hab als Eingabezahl 490 und es soll als int durch den Wert 3,07 gerechnet werden... Es kommt 159,6091205212 raus, aber angezeigt wird nur 159.0, wieso das? Klar, Ganzzahl und so, wie muss ich nun vorgehen, um den Wert in diesem Fall aufzurunden?
Abgesehen davon kriegt jedes Kleinkind eine Rundung hin. Lass einfach den Rechner das machen, was du machen würdest.