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. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x