Kann ich das machen System.out.print
?
java
formatting
printf
decimal-point
via_point
quelle
quelle
String.format(java.util.Locale.US,"%.2f", val);
Locale.FRANCE
?Locale.US
geht zu weit. Wenn Sie ein "neutrales" Gebietsschema für das Falzen von Groß- und Kleinschreibung, das Rendern von Zahlen usw. fest codieren müssen, geben Sie dies anLocale.ROOT
. Dies ist für Text geeignet, der von einem anderen Programm verwendet wird und nicht für menschliche Benutzer gerendert wird. Beachten Sie für Text, der einem Benutzer angezeigt wird, dessen Gebietsschema, unabhängig davon, ob er es explizit angegeben hat oder es die Standardeinstellung ist.Sie können verwenden
DecimalFormat
. Eine Möglichkeit, es zu verwenden:Eine andere Möglichkeit besteht darin, es im
#.##
Format zu erstellen.Ich finde alle Formatierungsoptionen weniger lesbar als das Aufrufen der Formatierungsmethoden, aber das ist eine Frage der Präferenz.
quelle
System.out.printf("%.2f", value)
Syntax passiert ? Ist es noch da?DecimalFormat
Antworten sah, hatte ich sofort gedacht, dass ich falsch liege, aber danke, dass Sie das klargestellt haben.df.setMinimumFractionDigits(2);
, um zwei Ziffern zu erzwingenIch würde empfehlen, String.format () zu verwenden, wenn Sie den Wert als
String
in Ihrem Code benötigen .Sie können beispielsweise
String.format()
Folgendes verwenden:quelle
quelle
DecimalFormat df = new DecimalFormat("0.00");
quelle
Die Ausgabe ist 22,35. Wenn Sie 3 Dezimalstellen benötigen, ändern Sie diese in "% .3f".
quelle
Viele Leute haben erwähnt
DecimalFormat
. Sie können aber auch verwenden,printf
wenn Sie eine aktuelle Version von Java haben:Weitere Informationen zur Zeichenfolge im printf-Format finden Sie in den Dokumenten im Formatierer .
quelle
Ein einfacher Trick besteht darin, eine kürzere Version Ihrer Variablen zu generieren, indem Sie sie mit z. B. multiplizieren
100
, runden und erneut dividieren100.0
. Auf diese Weise generieren Sie eine Variable mit 2 Dezimalstellen :Dieser "billige Trick" war immer gut genug für mich und funktioniert in jeder Sprache (ich bin keine Java-Person, lerne ihn nur).
quelle
Sie können diese Quickcodes unten verwenden, die sich am Ende selbst geändert haben. Fügen Sie hinzu, wie viele Nullen sich nach dem Punkt beziehen
quelle
Schauen Sie sich DecimalFormat an
Hier ist ein Beispiel aus dem Tutorial:
Wenn Sie ein Muster wie "###. ##" wählen, erhalten Sie zwei Dezimalstellen, und ich denke, dass die Werte aufgerundet sind. Sie sollten sich den Link ansehen, um genau das gewünschte Format zu erhalten (z. B. ob Sie nachgestellte Nullen möchten).
quelle
Im Folgenden finden Sie Code, wie Sie eine Ausgabe von Float-Daten mit 2 Dezimalstellen in Java anzeigen können:
quelle
OK - str zu schweben.
Ausgabe:
quelle
kleines einfaches Programm zur Demonstration:
quelle
Tun
String str = System.out.printf("%.2f", val).replace(",", ".");
Sie dies einfach, wenn Sie sicherstellen möchten, dass unabhängig vom Gebietsschema des Benutzers immer ein "/" angezeigt wird. als Dezimaltrennzeichen. Dies ist ein Muss, wenn Sie Ihr Programm nicht zum Absturz bringen möchten, wenn Sie später eine Konvertierung wie durchführenfloat f = Float.parseFloat(str);
quelle
Ein Problem, das mich eine Stunde oder länger beschäftigt hat
DecimalFormat
- Es behandelt Double- und Float-Eingaben unterschiedlich. Auch eine Änderung des RoundingMode hat nicht geholfen. Ich bin kein Experte, dachte aber, es könnte jemandem wie mir helfen. EndeteMath.round
stattdessen mit. Siehe unten:Ausgabe:
quelle
Versuche dies:-
quelle