Nach meinem Verständnis, wenn die Zahl, auf die gerundet wird, zwischen ihren Nachbarn gleich weit auseinander liegt (z. B. 4,5, wenn Sie eine Nachkommastelle runden), runden Sie die vorhergehende Zahl ab zur nächsten geraden Zahl.Half-Even Rounding
Wenn Sie beispielsweise auf 0 Nachkommastellen runden 1.5, 3.5, 5.5, 7.5 und 9.5 werden alle auf 2, 4, 6, 8 und 10 aufgerundet. Das alles funktioniert gut und gut in Netbeans, aber ich stoße auf Probleme, wenn ich auf 1 Stelle nach dem Komma rundet.
package foo;
import java.text.NumberFormat;
public class Foo {
public static void main(String[] args) {
NumberFormat formatter = NumberFormat.getNumberInstance();
formatter.setMaximumFractionDigits(1);
System.out.print(formatter.format(4.45));
}
}
Lauf:
4.5
BUILD SUCCESSFUL (total time: 0 seconds)
Ich würde denken, dass dies zusätzlich zu 4.4
abrunden würde, wenn ich 4.55 für die Eingabe in Format verwenden, 4.5 ausgegeben, wo ich erwarten 4,6 Gibt es ein Fehler mit Java oder mit meinem Verständnis?
[s] Sind Sie sicher, Number ist standardmäßig Halb auch? [/ S] macht nichts, es ist. – Arhowk
Ich habe gerade Ihren Code ausgeführt und es gab mir 4.4 – Arhowk
Ich bekomme 4,4. Welche Version von Java verwenden Sie? –