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 den Doppelpunkt durchführen und das Ergebnis mit bestimmter Genauigkeit an den Ausgang senden (4). Es funktioniert gut, aber es gibt ein Problem, wenn die Eingabe 0 ist, dann funktioniert es nicht richtig.Doppelter Wert mit spezifischer Genauigkeit in Java
Zum Beispiel für diese Eingabe, wird ausgegeben:
1 kg
Ausgang: 2,2046
3,1 kg
Ausgang: 6,8343
Aber wenn der Eingang 0 ist, sollte der Ausgang ist 0.0000, aber es zeigt 0.0. Was soll ich tun, um die Anzeige von 0,0000 zu erzwingen?
ich ähnliche Post über doppelte Genauigkeit zu lesen, schlagen sie so etwas wie BigDecimal
Klasse, aber ich kann sie in diesem Fall nicht verwenden, mein Code, dies zu tun ist:
line=input.nextLine();
array=line.split(" ");
value=Double.parseDouble(array[0]);
type=array[1];
value =value*2.2046;
String s = String.format("%.4f", value);
value = Double.parseDouble(s);
System.out.print(value+" kg\n");
Try "% 0.4f". Das bedeutet, formatieren Sie einen Gleitkommawert und füllen Sie ihn mit Nullen, bis Sie 4 Ziffern haben. – user268396
Ich habe "% .4f" verwendet, aber es zeigt diesen Fehler an: Ausnahme im Thread "main" java.util.MissingFormatWidthException: 0.4f – MehrdadSComputer
Siehe auch http://StackOverflow.com/questions/10959424/show-only-two- digit-nach-decimal, aber das ist kein Duplikat davon wegen der für 0 gewollten Formatierung. – Raedwald