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ą
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