Счетчик просмотров46

Округление чисел: round и подводные камни

Оглавление
Функция roundБанковское округлениеОкругление вверх и внизОкругление вверх без mathВажно: round может удивить

Функция round

PYTHON-КОД
1
2

Банковское округление

Казалось бы, round(2.5) должно дать 3. Но Python округляет половинки к ближайшему чётному:

ВыражениеРезультатПочему
round(0.5)00 — чётное
round(1.5)22 — чётное
round(2.5)22 — чётное
round(3.5)44 — чётное
Баннер статьи

Округление вверх и вниз

Часто (особенно в задании 7 — кодирование) нужно округлять именно вверх. Для этого — модуль math:

ФункцияЧто делаетПример
math.ceil(x)всегда вверхceil(6.1) → 7
math.floor(x)всегда внизfloor(6.9) → 6

Округление вверх без math

«Сколько блоков по k вмещает n с округлением вверх» — есть приём через целочисленное деление:

PYTHON-КОД
1
2

Прибавляем k-1 перед целочисленным делением — дробный остаток «подталкивает» результат вверх. Часто встречается в задачах на упаковку и кодирование.

Важно: round может удивить

Из-за банковского округления round не всегда даёт ожидаемое для «.5». Если в задаче нужно строгое округление вверх — бери math.ceil или приём (n + k − 1) // k, не полагайся на round. На большинстве задач ЕГЭ это не мешает, но знать стоит.

Оцените статью

Другие статьи по предмету

Другие статьи не найдены