Rozdział 4 · Python lubi liczby

Zaokrąglenie: round(), floor(), ceil(), trunc()

Kilka sposobów na przekształcenie liczby ułamkowej w liczbę całkowitą — i dlaczego dają różne odpowiedzi dla liczb ujemnych.

Istnieje kilka sposobów na przekształcenie liczby ułamkowej w liczbę całkowitą – i zachowują się one Na różne sposoby, zwłaszcza dla wartości ujemnych.

round() jest regularne zaokrąglanie

round_demo.py
print(round(3.14159, 2))  # 3.14
print(round(7.5))          # 8

Zaokrąglanie „do parzystej” na granicy .5

Dokładne spojrzenie na zaokrąglenie dokładnie pośrodku daje na pierwszy rzut oka nieoczekiwane Wynik:

granica.py
print(round(2.5))  #2, nie 3!
print(round(3.5))  # 4
Zaokrąglanie do najbliższego parzystego
To nie jest pomyłka ani przypadek: round() w Python zaokrągla wartość dokładnie między dwiema liczbami całkowitymi do NAJBLIŻSZEJ PARZYSTEJ jednej, standardowej techniki statystycznej („zaokrąglanie bankowe”

math.floor(), math.ceil(), math.trunc()

floor_ceil_trunc.py
from math import floor, ceil, trunc

print(floor(-2.3))  # -3 – do mniejszej liczby całkowitej
print(ceil(-2.3))   # -2 – Aż do większej całości
print(trunc(-2.3))  # -2 – po prostu odpuść część ułamkową
-4-3-2-10floor(-2.3)ceil(-2.3) i trunc(-2.3)
floor zaokrągla w dół do -3; ceil i trunc pokrywają się tutaj – oba dają -2
Dla liczb ujemnych są trzy różne odpowiedzi
Dla liczb dodatnich floor() oraz trunc() często się pokrywają, więc różnica łatwo umyka uwadze. W przypadku negatywnych prawie nigdy się nie pokrywają, co widać na powyższej linii liczbowej.
Praktyka: round, floor, ceil, trunc
Interaktywny laptop bezpośrednio w przeglądarce – przewiduj wynik dla ujemnych wyników
Otwórz praktykę →