System.out.format, Hilfe.

ZypriZ

Mitglied
Hallo Leute,

ich möchte mit
Java:
System.out.format
ein Float-Ergebnis ausgeben. Dieses Ergebnis soll auf zwei Kommanachstellen gerundet werden. Ich habe aber überhaupt keine Ahnung wie ich es machen soll. Habe schon ca. eine Stunde im Internet nach einer Lösung gesucht aber die Defeinationen verstehe ich einfach nicht.
Da ich ein blutiger Anfänger bin, bin ich mir nicht sicher ob ich es richtig beschrieben habe und ihr wisst was ich meine.

Lg.
ZypriZ

PS: Hoffe ihr könnt mir helfen.
 
Java:
float number = 3.14159265f;
System.out.format("%.2f%n", number);
 
Was sollen wir definieren?
Erklärungen zu dem formatieren findest du in der verlinkten Doku.
 
Hallo ZypriZ,

habe mir mal dein Problem angeschaut und bin zu folgender Lösung gekommen ...

Java:
float number = (float) 2.5567544;
DecimalFormat j = new DecimalFormat("#0.00");
System.out.format(j.format(number));

zu Zeile 1: Hier wird der float erstellt und nochmal zu einem solchen gecastet.
zu Zeile 2: Hier legst du fest wie das Ausgabeformat "j" aussehen soll ... ("#0.00") <-sieht so aus-> o,oo
zu Zeile 3: Hier gibst du number aus und legst fest das number das Format j haben soll.

ich hoffe das war verständlich und hilfreich.

Lg
OOBE
 
Hallo ZypriZ,

habe mir mal dein Problem angeschaut und bin zu folgender Lösung gekommen ...

Java:
float number = (float) 2.5567544;
DecimalFormat j = new DecimalFormat("#0.00");
System.out.format(j.format(number));

zu Zeile 1: Hier wird der float erstellt und nochmal zu einem solchen gecastet.
zu Zeile 2: Hier legst du fest wie das Ausgabeformat "j" aussehen soll ... ("#0.00") <-sieht so aus-> o,oo
zu Zeile 3: Hier gibst du number aus und legst fest das number das Format j haben soll.

ich hoffe das war verständlich und hilfreich.

Lg
OOBE

Sehr gute Erklärung. Eins bleibt mir aber dennoch offen in der ersten Zeile, warum soll ich 2.5567544 machen?
 
Java:
float f = 12.2375f;
System.out.format("%1$.2f", f);
Definition:
% = start des Format Strings
1$ = erstes Argument
.2 = runden auf 2 Stellen nach dem Komma
f = Gleitkommazahl


man könnte auch mehrere Zahlen formatiert ausgeben:
Java:
float f = 12.2375f;
int i = 42;
System.out.format("%1$.2f %2$d", f, i);
Definition:
% = start des Format Strings
1$ = erstes Argument
2$ = zweites Argument
.2 = runden auf 2 Stellen nach dem Komma
f = Gleitkommazahl
d = Dezimalzahl
 
Schau doch bitte in die API, da steht doch alles drin.
Code:
%n
fügt einen Zeilenumbruch ein.
 
Ich versteh die Frage nicht ganz. Du kannst beides benutzen. Da die Formatierung in Zeile 2 geschieht brauchst du nicht mehr zwingend System.out.format. Das wäre in diesem Fall sogar doppel gemoppelt. 🙂
 

Zurück
Oben