Python
Как округлить число до сотых в Python: round, форматирование и Decimal
Чтобы округлить число до сотых в Python, используйте `round(number, 2)`. Второй аргумент `2` означает два знака после десятичной точки.
Ниже — разделы про округление через round, форматирование до двух знаков после точки и round и форматирование решают разные задачи, чтобы быстро понять устройство материала, практические ограничения и типовые точки отказа.
Чтобы округлить число до сотых в Python, используйте round(number, 2). Второй аргумент 2 означает два знака после десятичной точки
number = 12.3456
result = round(number, 2)
print(result)
Результат
12.35
Если нужно не изменить число, а красиво вывести его с двумя знаками после точки, используйте форматирование: f"{number:.2f}"
Округление через round
price = 199.987
rounded_price = round(price, 2)
print(rounded_price)
Результат
199.99
round(price, 2) возвращает новое значение. Исходная переменная не меняется сама по себе
price = 199.987
round(price, 2)
print(price)
Вывод останется
199.987
Чтобы сохранить результат, нужно присвоить его переменной
price = round(price, 2)
Форматирование до двух знаков после точки
Иногда нужно, чтобы на экране всегда было два знака: 12.30, а не 12.3. Для этого лучше использовать f-строку
number = 12.3
print(f"{number:.2f}")
Результат
12.30
Важно: результат форматирования — строка, а не число
number = 12.3
text = f"{number:.2f}"
print(text)
print(type(text))
Если дальше нужно считать, используйте число. Если нужно показать пользователю цену или результат, используйте форматирование
round и форматирование решают разные задачи
| Задача | Что использовать |
|---|---|
| Получить число, округленное до сотых | round(number, 2) |
| Показать на экране ровно два знака | f"{number:.2f}" |
| Напечатать цену с копейками | форматирование |
| Продолжить математические расчеты | число после round() или исходное число |
Пример
total = 10 / 3
print(round(total, 2))
print(f"{total:.2f}")
Оба варианта покажут 3.33, но тип результата разный
Почему иногда видны странные хвосты
Числа с плавающей точкой в Python хранятся в двоичном виде. Из-за этого некоторые десятичные дроби не представляются идеально точно
print(0.1 + 0.2)
Можно увидеть
0.30000000000000004
Это нормальная особенность float, а не ошибка Python. Для вывода обычно достаточно форматирования
result = 0.1 + 0.2
print(f"{result:.2f}")
Результат
0.30
Округление денежных значений
Для учебных задач round() часто достаточно. Но если речь о деньгах, налогах, чеках и финансовых расчетах, лучше использовать Decimal
from decimal import Decimal, ROUND_HALF_UP
price = Decimal("12.345")
rounded = price.quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
print(rounded)
Результат
12.35
Decimal работает с десятичными числами точнее для финансовых сценариев, если значения передавать строками, а не float
Округление списка чисел до сотых
numbers = [1.234, 5.678, 9.876]
rounded_numbers = [round(number, 2) for number in numbers]
print(rounded_numbers)
Результат
[1.23, 5.68, 9.88]
Для вывода с двумя знаками
for number in numbers:
print(f"{number:.2f}")
Округление процентов
part = 17
total = 43
percent = part / total * 100
print(f"{percent:.2f}%")
Результат
39.53%
В отчетах и интерфейсах проценты почти всегда форматируют, потому что пользователю важен аккуратный вид, а не внутренний тип значения
Мини-практика
Посчитайте средний чек и выведите его до сотых
orders = [1200.50, 999.90, 340.25]
average = sum(orders) / len(orders)
print("Средний чек:", round(average, 2))
print(f"Средний чек: {average:.2f} руб")
Сравните два вывода. Первый показывает число, второй — строку для пользователя
Частые ошибки
Ожидать, что round изменит переменную на месте
round(number, 2) возвращает новое значение. Его нужно сохранить
Использовать int для округления до сотых
int() убирает дробную часть, а не округляет до двух знаков
Путать запятую и точку
В Python десятичный разделитель — точка: 12.34, а не 12,34
Использовать float для точных денежных расчетов
Для серьезных финансовых расчетов используйте Decimal и явно выбранное правило округления
Что почитать дальше по Python
Если нужен общий маршрут по теме, откройте рубрику Python. Для соседних задач пригодятся эти разборы:
- round в Python: как округлять числа до целого, сотых и нужного количества знаков
- Как округлить число в Питоне до целого: round, int, floor и ceil
- Как преобразовать число в строку Python: str, f-строки и форматирование
- Как вывести словарь без скобок в Python: пары ключ-значение, строки и форматирование