B
Bens0n
Gast
Hallo,
ich habe ein Problem mit NumberFormat und dem RoundingMode.HALF_UP. Die JavaDocs sagen, dass HALF_UP alles >=0.5 aufrundet, wie man es auch vom Alltag her kommt. Ich will mit dem folgenden Code meine Zahlen auf eine Nachkommastelle runden. Das klappt auch soweit, nur bei Zahlen wie 2.55, 3.55, x.55 rundet er nicht wie erwartet auf 2.6, 3.6, x.6 sondern auf x.5.
Verstehe ich hier was falsch? Ich würde erwarten, dass 2.55 auf 2.6 gerundet wird. Hier der Code-Ausschnitt aus meinem Unit-Test:
Gibt man 2.551f an dann rundet er auch korrekt auf 2.6. Kann mir jemand verraten warum das nicht wie erwartet klappt bzw. was ich hier übersehe? Danke!
Viele Grüße,
Ben
ich habe ein Problem mit NumberFormat und dem RoundingMode.HALF_UP. Die JavaDocs sagen, dass HALF_UP alles >=0.5 aufrundet, wie man es auch vom Alltag her kommt. Ich will mit dem folgenden Code meine Zahlen auf eine Nachkommastelle runden. Das klappt auch soweit, nur bei Zahlen wie 2.55, 3.55, x.55 rundet er nicht wie erwartet auf 2.6, 3.6, x.6 sondern auf x.5.
Verstehe ich hier was falsch? Ich würde erwarten, dass 2.55 auf 2.6 gerundet wird. Hier der Code-Ausschnitt aus meinem Unit-Test:
Java:
NumberFormat formatter = NumberFormat.getNumberInstance(Locale.GERMANY);
formatter.setMinimumFractionDigits(1);
formatter.setMaximumFractionDigits(1);
formatter.setRoundingMode(RoundingMode.HALF_UP);
assertEquals("2,6", NoteUtil.formatNote(2.6f)); // Korrekt!
assertEquals("2,6", NoteUtil.formatNote(2.63f)); // Korrekt!
assertEquals("2,6", NoteUtil.formatNote(2.64f)); // Korrekt!
assertEquals("2,6", NoteUtil.formatNote(2.55f)); // Hier kommt 2,5 anstatt 2,6 zurück!
assertEquals("2,6", NoteUtil.formatNote(2.56f)); // Korrekt!
assertEquals("2,6", NoteUtil.formatNote(2.57f)); // Korrekt!
assertEquals("2,6", NoteUtil.formatNote(2.57f)); // Korrekt!
Gibt man 2.551f an dann rundet er auch korrekt auf 2.6. Kann mir jemand verraten warum das nicht wie erwartet klappt bzw. was ich hier übersehe? Danke!
Viele Grüße,
Ben