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, которые опускают или поднимают числа до следующего целого числа. Но если вам нужна точность, то функция quantize()
из модуля decimal
позволяет задать поведение округления.
Внутренне, 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