Python:
Округлення чисел
Як:
Ось керівництво з округлення чисел у Python:
# Округлити число до найближчого цілого
print(round(8.67)) # Результат: 9
# Округлити число до вказаної кількості десяткових місць
print(round(8.67, 1)) # Результат: 8.7
# Парні числа округляються вниз, а непарні числа округляються вгору, коли вони еквідистантні
print(round(2.5)) # Результат: 2
print(round(3.5)) # Результат: 4
Поглиблений аналіз
У Python, round()
не просто відрізає десяткові знаки. Історично, Python, як і багато інших мов, слідує принципу “округлення до найближчого парного” або “банківське округлення”. Це мінімізує кумулятивну помилку в сумах або середніх, що має значення у фінансових розрахунках.
Щодо альтернатив, ви маєте math.floor()
та math.ceil()
з математичного модуля Python, які “тащать” числа вниз або вгору до наступного цілого числа. Але якщо вам потрібна точність, decimal
модуль з quantize()
дозволяє вказати поведінку округлення.
Під капотом, round()
працює з двійковими числами з плаваючою точкою. Оскільки деякі десяткові числа не можуть бути точно виражені в двійковій формі, ви можете отримати сюрпризи з таким як round(2.675, 2)
яке не стає 2.68
, як очікувалося. В таких випадках вдаються до decimal
або fractions
для високої точності.
Дивіться також
- Документація Python щодо вбудованих функцій: https://docs.python.org/3/library/functions.html#round
- Арифметика з фіксованою та плаваючою точкою decimal: https://docs.python.org/3/library/decimal.html
- Математичний модуль Python: https://docs.python.org/3/library/math.html