Ich habe einige Probleme beim Formatieren der Dezimalstellen eines Doppels. Wenn ich einen doppelten Wert habe, z. B. 4.0, wie formatiere ich die Dezimalstellen so, dass sie stattdessen 4,00 betragen?
java
formatting
double
decimal
Christoffer
quelle
quelle
String.format()
oderjava.text.Format
.Antworten:
Eine Möglichkeit wäre die Verwendung von NumberFormat .
Ausgabe:
4.00
quelle
Mit Java 8 können Sie die
format
Methode .. verwenden: -f
wird für denfloating
Punktwert verwendet.2
Nach Dezimalstelle wird die Anzahl der Nachkommastellen angegeben.
Für die meisten Java-Versionen können Sie Folgendes verwenden
DecimalFormat
:quelle
Verwenden Sie String.format :
String.format("%.2f", 4.52135);
Gemäß Dokumentation:
quelle
Mit String.format können Sie Folgendes tun:
Beachten Sie das Komma, das dies von der Antwort von @ Vincent unterscheidet
Ausgabe:
$52,000.00
Eine gute Quelle für die Formatierung ist die offizielle Java-Seite zu diesem Thema
quelle
Sie können immer die statische Methode verwenden
printf from System.out
- Sie implementieren dann den entsprechenden Formatierer. Dies spart Heap-Speicherplatz, für den andere Beispiele erforderlich waren.Ex:
Spart Heap-Speicherplatz, was ein ziemlich großer Bonus ist. Dennoch bin ich der Meinung, dass dieses Beispiel viel einfacher zu handhaben ist als jede andere Antwort, zumal die meisten Programmierer die printf-Funktion von C kennen (Java ändert die Funktion / Methode jedoch geringfügig).
quelle
out
ist dasPrintStream
.printf
ist eine statische Methode vonPrintStream
. Siehe hier ;) Aber trotzdem +1.quelle
quelle
Eine alternative Methode ist die Verwendung der
setMinimumFractionDigits
Methode aus derNumberFormat
Klasse.Hier legen Sie grundsätzlich fest, wie viele Zahlen nach dem Dezimalpunkt erscheinen sollen.
Eine Eingabe von
4.0
würde also ergeben4.00
, vorausgesetzt, Ihre angegebene Menge war 2.Wenn Ihre
Double
Eingabe jedoch mehr als den angegebenen Betrag enthält, wird der angegebene Mindestbetrag verwendet, und es wird eine weitere auf- / abgerundete Ziffer hinzugefügtZum Beispiel wird
4.15465454
mit einer angegebenen Mindestmenge von 2 produziert4.155
Probieren Sie es online aus
quelle
Es gibt viele Möglichkeiten, dies zu tun. Diese sind unten angegeben:
Angenommen, Ihre ursprüngliche Nummer ist unten angegeben:
Verwenden von NumberFormat:
Verwenden von String.format:
Verwenden von DecimalFormat und Muster:
Verwenden von DecimalFormat und Muster
In allen Fällen lautet die Ausgabe : 2354548.23
Hinweis :
Während des Rundens können Sie
RoundingMode
Ihren Formatierer hinzufügen . Hier sind einige Rundungsmodi unten angegeben:Hier sind die Importe :
quelle
Sie können eine der folgenden Methoden verwenden
Wenn Sie verwenden
java.text.DecimalFormat
ODER
Wenn Sie es in ein einfaches Zeichenfolgenformat konvertieren möchten
Der gesamte obige Code gibt 4,00 aus
quelle
Funktioniert zu 100%.
quelle
Erster Import
NumberFormat
. Dann füge folgendes hinzu:Dies gibt Ihnen zwei Dezimalstellen und ein Dollarzeichen, wenn es sich um Währung handelt.
quelle
Sie können dies wie folgt tun:
quelle
##
anstelle von00
Ich weiß, dass dies ein altes Thema ist, aber wenn Sie den Punkt wirklich gerne anstelle des Kommas haben möchten, speichern Sie Ihr Ergebnis einfach als X, 00 in einem String und ändern Sie es dann einfach für einen Zeitraum, damit Sie X.00 erhalten
Am einfachsten ist es, nur Ersetzen zu verwenden.
Die Ausgabe ist die von Ihnen gewünschte X.00 . Um es einfach zu machen, können Sie alles auf einmal erledigen und in einer doppelten Variablen speichern:
Ich weiß, dass diese Antwort momentan nicht nützlich ist, aber vielleicht sucht jemand, der dieses Forum überprüft, nach einer schnellen Lösung wie dieser.
quelle