Какой результат даст вызов round(2.5) в современном Python 3?

AЦелое число 2, потому что Python округляет дробное .5 к ближайшему чётному числу
BЦелое число 3, потому что дробное .5 по школьному правилу всегда округляется вверх
CДробное число 2.0 типа float, потому что round() всегда сохраняет исходный тип float
DПроизойдёт исключение ValueError, потому что функция round() не работает с дробным .5
Правильный ответ. Python использует банковское округление: при .5 число округляется к ближайшему чётному.

Разбор

В Python 3 round() при равноудалённом значении (.5) округляет к ближайшему чётному числу. Поэтому round(2.5) даёт 2 (чётное), а round(3.5) даёт 4 (тоже чётное). Это банковское округление — оно уменьшает систематическую ошибку при многократном округлении. Школьное правило «всегда вверх» в Python 3 не используется, и тип результата при вызове round(x) без второго аргумента — int, а не float.

Можно заниматься бесплатно

Готовим вопросы…

Три вопроса по теме этой страницы, с объяснениями.

Продолжить в браузере

Ещё вопросы по теме «Синтаксис и типы данных»