Wenn der Wert "200,3456" lautet, sollte er als "200,34" formatiert werden. Wenn er "200" lautet, sollte er "200,00" lauten.
Wenn Sie nur einen "Double" mit zwei Nachkommastellen ausgeben wollen, verwenden Sie etwas wie dieses:
double value = 200.3456;
System.out.printf("Value: %.2f", value);
Wenn Sie das Ergebnis in einer Zeichenkette haben wollen, anstatt es auf der Konsole auszugeben, verwenden Sie "Zeichenkette.format()" mit den gleichen Argumenten:
String result = String.format("%.2f", value);
Oder verwenden Sie die Klasse DecimalFormat
:
DecimalFormat df = new DecimalFormat("####0.00");
System.out.println("Value: " + df.format(value));
Am einfachsten ist es, wenn Sie einen Trick wie diesen anwenden;
double val = ....;
val = val*100;
val = Math.round(val);
val = val /100;
wenn val bei 200,3456 beginnt, dann auf 20034,56 geht, dann auf 20035 gerundet wird und dann geteilt wird, um 200,34 zu erhalten.
Wenn Sie immer abrunden wollten, könnten wir immer abschneiden, indem wir in eine int:
double val = ....;
val = val*100;
val = (double)((int) val);
val = val /100;
Diese Technik wird in den meisten Fällen funktionieren, da sie bei sehr großen (positiven oder negativen) Doubles zu einem Überlauf führen kann, aber wenn Sie wissen, dass Ihre Werte in einem angemessenen Bereich liegen, sollte dies funktionieren.
Das Runden eines Double ist normalerweise nicht das, was man will. Verwenden Sie stattdessen String.format()
, um ihn im gewünschten Format darzustellen.