Według mojego zrozumienia, z półokrągłym zaokrągleniem, jeśli liczba, na którą się zaokrąglasz, znajduje się w równej odległości między sąsiadami (na przykład 4,5, jeśli zaokrąglasz jedną po przecinku), wykonujesz zaokrąglenie poprzedzającego numeru do najbliższej liczby parzystej.Półokrągłe zaokrąglanie
Na przykład, jeśli zaokrąglić do 0 cyfr po przecinku 1,5, 3,5, 5,5, 7,5 i 9,5 zostaną zaokrąglone w górę odpowiednio do 2, 4, 6, 8 i 10. Wszystko działa dobrze i dobrze w netbeans, ale mam problemy, gdy zaokrąglam do 1 miejsca po przecinku.
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));
}
}
run:
4.5
BUILD SUCCESSFUL (total time: 0 seconds)
Myślę, że byłoby to zaokrąglić do 4,4
Dodatkowo, jeśli używam 4,55 dla wejścia w formacie 4.5 jest wyjście gdzie spodziewam 4,6 Czy istnieje błąd z java lub z moim zrozumieniem?
[s] Na pewno numberFormat jest pół-nawet domyślnie? [/ S] nieważne, że jest. – Arhowk
Po prostu uruchomiłem twój kod i dało mi 4.4 – Arhowk
Otrzymuję 4,4. Jakiej wersji Java używasz? –