Błąd zaokrąglenia

0

Nie mogę zrozumieć pewnej rzeczy.
Mam do napisania program w którym wynikiem jest zaokrąglona liczba, np.: do 1 pierwszego miejsca po przecinku czyli:

1,445224 ~1,4

ale jeżeli zrobimy to w 5 skokach czyli za każdym razem będziemy przesuwać przecinek w lewo to:

1,445224 ~ 1,44522
1,445224 ~ 1,4452
1,445224 ~ 1,445
1,445224 ~ 1,45
1,445224 ~ 1,5

Nie mogę tego zrozumieć na chłopski rozum z czego to wynika lub chyba mam zaćmienie

1

Jeśli następna cyfra po tej, która zaokrąglamy, to 5,6,7,8, albo 9 to zaokrąglamy w górę. Szkoła podstawowa się kłania.

Jeżeli chodzi Ci o to skąd się wzięła różnica, to wynika ona z zasad zaokrąglania. Zaokrąglenie zależy od następnej cyfrze po cyfrze rzędu dokładności. Jeżeli zaokrąglasz liczbę do 1 miejsca po przecinku to nie robisz tego w 5 krokach tylko patrzysz tylko na następną cyfrę, w tym przypadku '4' i dlatego zaokrąglasz w dół.

0

Zaokrąglasz (zwiększasz) wartość dwa razy zamiast raz.
Jest to jakiś sposób zaokrąglenia (chociaż niespotykany) i działa inaczej niż standardowy - matematyczny (half away from zero).

Sposobów zaokrąglania jest naprawę wiele, każde z nich jest inne i nie są ze sobą kompatybilne.
Kilka z nich opisanych jest tutaj:
https://docs.oracle.com/javase/7/docs/api/java/math/RoundingMode.html

1 użytkowników online, w tym zalogowanych: 0, gości: 1