Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Функция round в python

Егор Цыганок Ученик (190), закрыт 1 год назад
Здравствуйте, ребята, у меня возник вопрос по поводу функции round. При ее использовании, я пытаюсь вывести округленное число 244.5. Насколько я понимаю данная функция округляет в большую сторону, но у меня в консоль выводится число 244, а не 245. Вопрос простой, но я не могу понять в чем дело. Подскажите, пожалуйста, может я что-то делаю не так?
Лучший ответ
Реципиент Гений (83470) 1 год назад
Она не округляет в большую сторону, как несложно догадаться.
Если посмотреть в документацию, то станет ясно, как она округляет.
https://docs.python.org/3/library/functions.html#round

if two multiples are equally close, rounding is done toward the even choice (so, for example, both round(0.5) and round(-0.5) are 0, and round(1.5) is 2)

А 244 - как раз чётное число.
Егор ЦыганокУченик (190) 1 год назад
Она просто округляет?
Реципиент Гений (83470) Егор Цыганок, 0.5 округляется к чётной цифре.
Егор ЦыганокУченик (190) 1 год назад
Я понял, спасибо вам большое)
Остальные ответы
Родион Берляков Гуру (3135) 1 год назад
Здравствуйте! Функция `round()` в Python округляет число до ближайшего целого значения. Однако, при равном удалении от двух ближайших целых значений, округление происходит к четному числу.

В вашем случае число 244.5 находится ровно посередине между 244 и 245. По правилу округления к четному числу (так называемое "банковское округление" или "округление по четности"), значение округляется к ближайшему четному числу. Таким образом, 244.5 округляется до 244, а не до 245.

Если вам необходимо округлить число всегда в большую сторону, вы можете использовать функцию `math.ceil()`. Вот пример:

```python
import math

x = 244.5
rounded = math.ceil(x)
print(rounded) # Выводит 245
```

Функция `math.ceil()` округляет число в большую сторону до ближайшего целого значения.
Егор ЦыганокУченик (190) 1 год назад
Спасибо вам за отзывчивость и за приведенный пример. Теперь знаю о существовании еще одной функции. Приятно очень. Хорошего вам вечера)
Родион БерляковГуру (3135) 1 год назад
Спасибо,вам тоже!
Асилбек Кабулов Ученик (123) 1 год назад
round округляет по стандартному алгоритму, если число после запятой меньше половины то она вычитывается, иначе округляется в положительную сторону, для принудительного округления можно использовать другие функции или самому написать алгоритм
Похожие вопросы