← Все вопросы
Как округлить число вверх или вниз в Python?
13
Функция round() округляет по правилам (к ближайшему). А мне надо ВСЕГДА вверх или ВСЕГДА вниз, независимо от дробной части. Как?
3 ответа
20
✓ Принятый ответ — помог автору
Модуль math: вверх — ceil, вниз — floor:
import math
print(math.ceil(4.1)) # 5
print(math.floor(4.9)) # 4
Для округления вниз у целочисленного деления есть удобный оператор // (без импортов): 17 // 5 == 3. А для «сколько коробок нужно» (округление вверх при делении) есть трюк без math: -(-17 // 5) == 4.
Оксана Крылова трюк с -(-a//b) шикарный, забрал · 14 месяцев назад
9
Осторожно с // для отрицательных: -7 // 2 == -4, а не -3. Оно округляет в сторону минус бесконечности, а не «отбрасывает дробную часть».
7
Вверх — math.ceil, вниз — math.floor.
Ваш ответ
Войдите, чтобы ответить на вопрос.