Ich programmiere ein einfaches Java-Programm. Ich muss eine Zeichenfolge von der Eingabe erhalten und es in zwei Teile teilen: 1-double 2-string. Dann muss ich eine einfache Berechnung für das Doppelte machen und das Ergebnis mit einer bestimmten Genauigkeit an den Ausgang senden (4). Es funktioniert gut, aber es gibt ein Problem, wenn die Eingabe 0 ist, dann funktioniert es nicht richtig.
Für diese Eingabe wird zum Beispiel ausgegeben:
1 kg
Ausgabe: 2.2046
3,1 kg
Ausgabe: 6.8343
Aber wenn die Eingabe 0 ist, sollte die Ausgabe 0,0000 sein, aber es zeigt 0,0. Was soll ich tun, um es zu zwingen, 0.0000 zu zeigen?
Ich habe einen ähnlichen Beitrag über doppelte Genauigkeit gelesen, sie schlagen etwas wie BigDecimal
class vor, aber ich kann sie in diesem Fall nicht verwenden,
Mein Code dafür ist:
DecimalFormat
können Sie festlegen, wie viele Ziffern angezeigt werden sollen. Eine '0' wird eine Ausgabe von Ziffern erzwingen, auch wenn der Wert Null ist, während ein '#' Nullen weglassen wird.
System.out.print(new DecimalFormat("#0.0000").format(value)+" kg\n");
sollte zum Trick.
Weitere Informationen finden Sie in der Dokumentation
Hinweis: Bei häufiger Verwendung sollten Sie den Formatierer aus Performancegründen nur einmal instanziieren und den Verweis speichern: final DecimalFormat df = new DecimalFormat("#0.0000");
. Dann benutze df.format(value)
.
Fügen Sie diese Instanz von DecimalFormat am Anfang Ihrer Methode hinzu:
%Vor%Rufen Sie dann die Instanz "vier" auf und übergeben Sie Ihren doppelten Wert, wenn Sie Folgendes anzeigen:
%Vor% Ich empfehle Ihnen, die Klasse BigDecimal
für die Berechnung mit Gleitkommawerten zu verwenden. Sie können die Genauigkeit der Fließkomma-Arithmetik steuern. Aber zurück zum Thema:)
Sie könnten Folgendes verwenden:
%Vor%gibt Ihnen die folgende Ausgabe:
%Vor% Verwenden Sie DecimalFormat
, um Ihren doppelten Wert zu fixieren Präzisions-String-Ausgabe.
DecimalFormat ist eine konkrete Unterklasse von NumberFormat, die formatiert Dezimal Zahlen. Es hat eine Vielzahl von Funktionen entwickelt, um es zu machen Es ist möglich, Zahlen in jedem Gebietsschema zu analysieren und zu formatieren, einschließlich der Unterstützung für westliche, arabische und indische Ziffern. Es unterstützt auch verschiedene Arten von Zahlen, einschließlich Ganzzahlen (123), Festkommazahlen (123.4), wissenschaftliche Notation (1.23E4), Prozentsätze (12%) und Währung Beträge ($ 123). Alle diese können lokalisiert werden.
Beispiel -
%Vor%