TGViewer
Библиотека Python разработчика | Книги по питону Библиотека Python разработчика | Книги по питону @bookpython · 18.1K subscribers
Post #4063 1.41K
Функция round округляет число до заданной точности в десятичных знаках.


>>> round(1.2)
1
>>> round(1.8)
2
>>> round(1.228, 1)
1.2


Также можно задать отрицательную точность:


>>> round(413.77, -1)
410.0
>>> round(413.77, -2)
400.0


round возвращает значение того же типа, что и входное число:


>>> type(round(2, 1))
<class 'int'>

>>> type(round(2.0, 1))
<class 'float'>

>>> type(round(Decimal(2), 1))
<class 'decimal.Decimal'>

>>> type(round(Fraction(2), 1))
<class 'fractions.Fraction'>


Для собственных классов можно определить поведение округления с помощью метода __round__:


>>> class Number(int):
... def __round__(self, p=-1000):
... return p
...
>>> round(Number(2))
-1000
>>> round(Number(2), -2)
-2


Значения округляются до ближайшего кратного 10 ** (-precision). Например, при precision=1, значение округляется до кратного 0.1: round(0.63, 1) возвращает 0.6.
Если два значения одинаково близки, округление происходит в сторону чётного числа:


>>> round(0.5)
0
>>> round(1.5)
2


Иногда округление чисел с плавающей точкой может казаться неожиданным:


>>> round(2.85, 1)
2.9


Это связано с тем, что большинство десятичных дробей не могут быть точно представлены в формате float:


>>> format(2.85, '.64f')
'2.8500000000000000888178419700125232338905334472656250000000000000'


Если нужно округление "в большую сторону при 0.5" (round half up), можно использовать decimal.Decimal:


>>> from decimal import Decimal, ROUND_HALF_UP
>>> Decimal(1.5).quantize(0, ROUND_HALF_UP)
Decimal('2')
>>> Decimal(2.85).quantize(Decimal('1.0'), ROUND_HALF_UP)
Decimal('2.9')
>>> Decimal(2.84).quantize(Decimal('1.0'), ROUND_HALF_UP)
Decimal('2.8')


📲 Мы в MAX

👉@BookPython
  • 👍 2
More from @bookpython
  1. Sep 25, 2026Как быстро очистить список в Python? Сегодня я покажу вам несколько способов очистки списк…
  2. Sep 24, 2026🚀 5 крутых Python-фишек, о которых знают не все Python — мощный и удобный язык, но даже о…
  3. Sep 23, 2026🔥 Как ускорить Python-код в 10 раз? Сегодня покажу вам мощный инструмент для оптимизации…
  4. Sep 21, 202610 полезных библиотек для Python-разработчика Сегодня я подготовил для вас подборку из 10…
  5. Sep 16, 2026Если у вас есть ресурсоемкая задача для процессора и вы хотите использовать все доступные…
  6. Sep 15, 2026Protocol vs ABC: Утиная типизация на стероидах (Static Duck Typing) В классическом ООП (Ja…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →