Słowo "zaokrąglenie" dla wartości liczbowej oznacza zastąpienie jej inną wartością, która jest w przybliżeniu równa, ale ma krótszą, prostszą lub bardziej przejrzystą formę. Na przykład, 23,74 USD może być zaokrąglone do 24 USD, lub ułamek 312/937 może być zaokrąglony do 1/3, lub wyrażenie 2{\displaystyle {\sqrt {2}}} jak 1,41. Zaokrąglanie wykonuje się zwykle celowo, aby uzyskać wartość łatwiejszą do zapisu, prezentacji lub obliczeń, ale także by wskazać sensowną dokładność wyniku — np. liczba obliczona jako 123,456, znana jednocześnie tylko do kilkuset jednostek, lepiej jest podana jako "około 123,500".

Z drugiej strony, zaokrąglenie wprowadza błąd zaokrąglenia, czyli różnicę między wartością rzeczywistą a jej zaokrągloną reprezentacją. Zaokrąglanie jest niemal nieuniknione w wielu obliczeniach: przy dzieleniu liczb całkowitych lub w arytmetyce stałopunktowej; przy obliczaniu funkcji matematycznych, takich jak pierwiastki kwadratowe, logarytmy i sinusy; czy przy użyciu zmiennoprzecinkowej reprezentacji o skończonej liczbie cyfr znaczących. W sekwencjach operacji błędy te zwykle się kumulują i w pewnych przypadkach prowadzą do dużego zniekształcenia wyników.

Zaokrąglanie ma wiele podobieństw do kwantyzacji, która pojawia się, gdy wielkości fizyczne muszą być kodowane liczbami lub sygnałami cyfrowymi. W obu przypadkach nieciągłość reprezentacji powoduje utratę informacji i powstanie błędu.

Metody zaokrąglania

  • Zaokrąglanie do najbliższej (round to nearest) — wartość jest zaokrąglana do najbliższej dopuszczalnej reprezentacji. Gdy wartość leży dokładnie w połowie drogi między dwoma reprezentacjami (tzw. przypadek "połowy"), stosuje się regułę rozstrzygającą (patrz niżej).
  • Zaokrąglanie "half up" (zaokrąglanie pół w górę) — przy połówce zawsze zaokrągla się w górę (1,5 → 2; −1,5 → −1 lub −2 zależnie od definicji "w górę" względem zera). Jest to intuicyjne, ale może wprowadzać systematyczny błąd przy dużych ilościach danych.
  • Round half to even (zaokrąglanie do parzystej) — przy połówce wybiera się liczbę o parzystej cyfrze końcowej (np. 2,5 → 2; 3,5 → 4). To reguła stosowana m.in. w standardzie IEEE 754; zmniejsza tendencyjne przesunięcie średniego błędu przy powtarzających się operacjach.
  • Zaokrąglanie w dół (floor) i w górę (ceil) — floor(x) to największa liczba mniejsza lub równa x z danej siatki reprezentacji, ceil(x) to najmniejsza liczba większa lub równa x. Przydatne, gdy potrzebny jest deterministyczny kierunek zaokrąglenia.
  • Obcinanie (truncation) — odrzucenie części ułamkowej (zapisywane często jako zaokrąglenie w kierunku zera). Proste, ale generuje systematyczny błąd przy ujemnych liczbach.
  • Zaokrąglanie do określonej liczby miejsc dziesiętnych — np. zaokrąglenie do 2 miejsc (123,456 → 123,46).
  • Zaokrąglanie do określonej liczby cyfr znaczących — ważne przy prezentacji wyników pomiarów i naukowych (np. 0,00123456 do 3 cyfr znaczących → 0,00123).
  • Różne tryby arytmetyki zmiennoprzecinkowej (np. IEEE 754): round to nearest (ties to even), round toward zero, round toward +∞, round toward −∞. Wybór trybu zależy od aplikacji i żądanego zachowania przy połówkach.
  • Stochastyczne zaokrąglanie — losowy wybór jednego z sąsiednich wartości z prawdopodobieństwem zależnym od odległości; używane np. w niektórych algorytmach uczenia maszynowego, by uniknąć biasu deterministycznego.

Reguły rozstrzygania przy "połówkach"

  • Zaokrąglanie pół w górę (najpopularniejsze w edukacji).
  • Zaokrąglanie do parzystej (ang. round half to even) — minimalizuje systematyczne odchylenie.
  • Zaokrąglanie "away from zero" — przy połowie przesuwa się w kierunku dalszym od zera.
  • W praktyce ważne jest jawne określenie reguły, bo różne reguły dają różne wyniki w krytycznych przypadkach.

Błędy zaokrąglania i ich rodzaje

Bezpośredni błąd zaokrąglenia to bezwzględna różnica między wartością rzeczywistą a jej zaokrągloną reprezentacją. Można też mierzyć błąd względny (błąd podzielony przez wartość rzeczywistą), co bywa ważne, gdy porównujemy wielkości rzędu różnych potęg dziesięciu.

Kumulacja i propagacja błędów: w sekwencji obliczeń błędy zaokrąglania mogą się sumować lub (rzadziej) częściowo znosić. Szczególnie niebezpieczne jest tzw. kataklizmatyczne odejmowanie (catastrophic cancellation): gdy odejmujemy dwie bliskie wartości, znaczące cyfry się znoszą i względny błąd wynikowy gwałtownie rośnie.

Błędy w funkcjach transcendentalnych: dla funkcji takich jak exp, sin, log czy pierwiastek dokładne zaokrąglenie jest trudniejsze — liczba dodatkowych cyfr koniecznych do jednoznacznego ustalenia zaokrąglenia w górę lub w dół nie jest z góry znana. Ten problem znany jest jako dylemat twórcy tabeli — wymaga obliczenia z nadmiarem precyzji (tzw. guard digits) lub stosowania zaawansowanych algorytmów poprawnego zaokrąglenia.

Sposoby ograniczania błędów

  • Użycie większej precyzji — obliczanie z dodatkową liczbą cyfr pomocniczych (guard digits) i dopiero na końcu zaokrąglanie do żądanej precyzji.
  • Algorytmy numeryczne odporne na błędy — np. Kahan summation do redukcji błędu przy sumowaniu wielu zmiennoprzecinkowych liczb.
  • Rearanżacja obliczeń — zmiana kolejności działań, by unikać odejmowania bliskich liczb lub liczyć bardziej stabilne formy wyrażeń algebraicznych.
  • Interval arithmetic (arytmetyka przedziałowa) — zamiast jednej liczby przechowuje się przedział gwarantujący, że prawdziwa wartość się mieści; pozwala kontrolować narastanie niepewności.
  • Dokumentowanie reguł zaokrąglania — w aplikacjach finansowych, prawnych i naukowych ważne jest jawne określenie trybu zaokrąglania, by zapewnić powtarzalność i zgodność wyników.

Przykłady praktyczne

  • Zaokrąglając 2,675 do dwóch miejsc dziesiętnych, różne reguły dają różne wyniki: half up → 2,68; half to even → 2,68 (tu trafia się na parzystość 7?; jednak w pamięci binarnej 2,675 może nie być reprezentowane dokładnie i wynik może być 2,67). To pokazuje, że reprezentacja wewnętrzna (np. binarna) wpływa na efekty zaokrąglania.
  • W finansach często stosuje się zaokrąglanie do dwóch miejsc dziesiętnych z regułą half up lub bankową (half to even) zależnie od regulacji. Przy przetwarzaniu dużej liczby transakcji wybór reguły ma znaczenie statystyczne.

Standardy i implementacje

Standard IEEE 754 dla arytmetyki zmiennoprzecinkowej definiuje kilka trybów zaokrąglania i rekomenduje domyślnie round to nearest, ties to even. Biblioteki matematyczne i języki programowania często udostępniają funkcje zaokrąglania o różnych regułach; warto zapoznać się z dokumentacją, by uniknąć nieoczekiwanych efektów.

Podsumowanie

Zaokrąglanie jest nieodłącznym elementem praktycznych obliczeń. Wybór metody i świadome zarządzanie błędami (poprzez większą precyzję, stabilne algorytmy i jasne reguły) są kluczowe, by ograniczyć wpływ zaokrągleń na wyniki. W przypadku funkcji transcendentalnych i krytycznych zastosowań matematycznych problemami zarządza się przez obliczenia z nadmiarem precyzji i specjalne algorytmy, co przeciwdziała efektom opisanym w "dylemacie twórcy tabeli".