← Все вопросы

Как округлить число вверх или вниз в Python?

Задан 14 месяцев назад1.1к просмотров3 ответа
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.

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект