Перейти к основному содержимому

Округление до 2 знаков после запятой в Python: 7 методов с пояснениями

Узнайте, как округлить число до двух знаков после запятой в Python с помощью round(), f-строк, format(), модуля decimal, NumPy и других — с сравнительной таблицей методов.
Обновлено 2 июн. 2026 г.  · 7 мин читать

Округление чисел до двух знаков после запятой — важный прием в Python. Он особенно полезен в финансовых расчетах, представлении данных и научной отчетности.

Python предоставляет ряд методов для точного округления. В этом руководстве я покажу, как округлить число до двух знаков после запятой в Python с помощью встроенных функций, библиотек и методов форматирования.

Если вы начинаете карьеру аналитика данных, рекомендую пройти курс DataCamp Introduction to Python, чтобы освоить основы Python для обработки и преобразования данных. Также вам пригодится наш учебник по NumPy в Python, если нужно округлять большие массивы чисел в процессах анализа данных.

TL;DR

  • Используйте round(number, 2) для арифметического округления — оно меняет фактическое значение.

  • Используйте f"{number:.2f}" или str.format() только для отображения — исходное число с плавающей точкой не изменяется.

  • Используйте модуль decimal, когда требуется точная десятичная арифметика (например, финансовые расчеты).

  • Используйте np.round(array, 2), чтобы округлить весь массив NumPy за один вызов.

  • Учитывайте особенности точности float: round(2.675, 2) возвращает 2.67, а не 2.68 из‑за способа хранения чисел с плавающей точкой в памяти.

Понимание округления и знаков после запятой

Знаки после запятой — это цифры, которые идут сразу после десятичной точки в числе. Они важны, поскольку определяют точность числа. Чем больше знаков после запятой, тем выше точность, и наоборот.

Округление чисел означает изменение числа за счет сокращения количества знаков после запятой. Этот прием обычно применяется для упрощения числа при сохранении согласованности расчетов. Тем не менее округление до заданного количества знаков влияет на точность рассчитанных значений из‑за появления небольших ошибок.

Python предоставляет разные методы для округления чисел до двух знаков после запятой. Следующие примеры подробно объясняют эти техники.

Использование round() для округления числа в Python

Функция round() — это встроенная функция Python для округления чисел с плавающей точкой до указанного количества знаков после запятой. Вы можете задать количество знаков, передав значение вторым аргументом. В примере ниже выводится 34.15.

# Example number to be rounded
number = 34.14559

# Rounding the number to 2 decimal places
rounded_number = round(number, 2)

print(rounded_number)

# 34.15

Функция round() в Python по умолчанию использует режим округления «round half to even», если вы опускаете второй аргумент. При округлении до ближайшего четного (банковском округлении), когда число точно посередине между двумя целыми, оно округляется к ближайшему четному целому. Этот подход полезен, поскольку помогает снизить накопление ошибок округления.

Подводный камень точности float с round()

Есть одна тонкость, которую стоит знать, прежде чем полагаться на round() в финансовом коде. Попробуйте так:

print(round(2.675, 2))  # You might expect 2.68
# Output: 2.67

Результат — 2.67, а не 2.68. Значение 2.675 нельзя представить точно в двоичной арифметике с плавающей точкой (IEEE 754); хранимое значение чуть меньше 2.675, поэтому Python округляет вниз.

Если вам нужно точное округление для финансовых расчетов, используйте модуль decimal с явным режимом округления:

from decimal import Decimal, ROUND_HALF_UP

result = Decimal("2.675").quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
print(result)  # 2.68

Использование техник форматирования строк для округления числа в Python

Методы форматирования строк полезны для округления чисел до двух знаков после запятой, особенно при выводе результата.

Помните, что при использовании форматирования строк в Python округленное значение выводится как строка, но исходное число остается неизменным. Если выполнять вычисления с исходным числом, они будут основаны на неокругленном значении, что может приводить к неожиданным результатам.

Округление с оператором %

Оператор % предлагает традиционный способ форматирования чисел до двух знаков после запятой. Он позволяет создавать форматированные строки, подставляя значения в заполнители.

В примере ниже f указывает на формат числа с плавающей точкой, а .2 задает количество знаков после запятой для округления.

# Example number to be rounded
number = 3.14159

# Using the % operator to round to 2 decimal places
formatted_number = "%.2f" % number

print(formatted_number)

# 3.14

Округление с помощью str.format()

Метод str.format() предоставляет более гибкий способ реализации сложных техник форматирования. Поскольку используются именованные заполнители, разработчики часто предпочитают этот метод оператору %. В примере ниже внутри фигурных скобок используется :.2f, чтобы указать округление числа до двух знаков после запятой. Код выведет 3.14.

# Example number to be rounded
number = 3.14159

# Using str.format() to round to 2 decimal places
formatted_number = "{:.2f}".format(number)

print(formatted_number)

# 3.14

Округление с помощью f-строк (Python 3.6+)

F-строки появились в Python 3.6 и теперь являются предпочтительным способом встраивания значений в строки. Синтаксис f-строк особенно удобен для округления: вы получаете форматирование отображения в одной строке без отдельного вызова. Код ниже печатает 14.68.

# Example number to be rounded
number = 14.67856

# Using f-strings to round to 2 decimal places
formatted_number = f"{number:.2f}"

print(formatted_number)

# 14.68

Использование format() для округления числа в Python

Встроенная функция format() принимает значение и спецификатор формата и возвращает отформатированную строку. В отличие от str.format(), вы передаете число напрямую, а не вставляете его в шаблонную строку. Код ниже печатает 345.69.

# Example number to be rounded
number = 345.68776

# Using the built-in format() to round to 2 decimal places
formatted_number = format(number, ".2f")

print(formatted_number)

# 345.69

Использование других модулей для округления числа в Python

Помимо базового Python, есть множество модулей, с помощью которых можно округлять числа. Я покажу три наиболее заметных примера: math, decimal и NumPy.

Округление с использованием модуля math

Модуль math не предоставляет функций, которые напрямую округляют числа до заданного количества знаков после запятой. Однако вы можете комбинировать math и другую арифметику, чтобы округлить число до двух знаков после запятой.

Функция math.floor() округляет число вниз до ближайшего целого. Чтобы округлить вниз до двух знаков после запятой, умножьте число на 100, примените math.floor() и разделите на 100. Код ниже печатает 3.14.

# Import math module
import math

# Example number to be rounded
number = 3.14159

# Using math.floor() to round down to 2 decimal places
rounded_down = math.floor(number * 100) / 100

print(rounded_down)

# 3.14

Аналогично, функция math.ceil() округляет число вверх до ближайшего целого. Чтобы округлить вверх до двух знаков после запятой, умножьте число на 100, примените math.ceil() и разделите на 100. Код ниже печатает 3.15.

# Import the math module
import math

# Example number to be rounded
number = 3.14159

# Using math.ceil() to round up to 2 decimal places
rounded_up = math.ceil(number * 100) / 100

print(rounded_up)

# 3.15

Округление с использованием модуля decimal

Модуль decimal в Python полезен для точного округления чисел с плавающей точкой с помощью метода .quantize(). В примере ниже мы задаем точность 0.01, чтобы округлить число до двух знаков после запятой.

# Import the decimal module
from decimal import Decimal

# Example number to be rounded
number = Decimal("18.73869")

# Define the rounding precision to 2 decimal places
precision = Decimal('0.01')

# Using the quantize method with ROUND_UP 
# to round the number up to 2 decimal places
rounded_number = number.quantize(precision)

print(rounded_number)

# 18.74

Если вам нужна гарантированная стратегия округления вверх, посмотрите наше новое руководство How to Round Up a Number in Python, чтобы узнать больше об использовании модулей math и decimal, а также о других приемах, которые обеспечивают округление всегда вверх, а не вниз. Если вы хотите глубже разобраться в преобразовании данных в целом, пройдите наш карьерный трек Data Analyst with Python для развития аналитических навыков.

Округление с использованием NumPy

При работе с массивами в NumPy используйте np.round(), чтобы округлить все элементы сразу. Это быстрее и читабельнее, чем перебирать значения вручную.

import numpy as np

prices = np.array([1.2345, 9.8765, 3.14159])
rounded_prices = np.round(prices, 2)

print(rounded_prices)
# [1.23 9.88 3.14]

np.round() применяет то же банковское правило округления, что и встроенная функция round() в Python. Метод .round() работает так же на DataFrame и Series в pandas:

import pandas as pd

df = pd.DataFrame({"price": [1.2345, 9.8765, 3.14159]})
df["price_rounded"] = df["price"].round(2)

print(df)
#      price  price_rounded
# 0   1.2345           1.23
# 1   9.8765           9.88
# 2  3.14159           3.14

Для более широкого обзора преобразования данных с pandas смотрите наш учебник по pandas.

Когда использовать каждый метод округления в Python

Краткая памятка по выбору подхода к округлению:

Метод Лучше всего для Меняет значение? Возвращает
round(x, 2) Общая арифметика Да float
f"{x:.2f}" Отображение / печать Нет str
str.format() Отображение / печать Нет str
% operator Отображение / печать (устар.) Нет str
format(x, ".2f") Отображение / одиночное значение Нет str
math.floor() / ceil() Всегда вниз / всегда вверх Да float
Decimal.quantize() Финансы / точные десятичные Да Decimal
np.round(arr, 2) Массивы NumPy Да ndarray

Несколько практических правил для выбора:

  • Нужно просто показать число? Используйте f-строку (f"{x:.2f}"). Одна строка, без импортов, без побочных эффектов для исходного значения.

  • Планируете дальше считать с результатом? Используйте round(x, 2). Он возвращает float, с которым можно продолжать вычисления.

  • Финансовый или бухгалтерский код? Используйте Decimal.quantize(). Неожиданности точности float (round(2.675, 2) == 2.67) не возникают при использовании модуля decimal.

  • Нужно всегда вверх или всегда вниз? Используйте math.ceil() или math.floor(). Они полностью игнорируют обычные правила округления.

  • Работаете с массивом NumPy или столбцом pandas? Используйте np.round(arr, 2) или series.round(2). Оба варианта обрабатывают всю коллекцию сразу.

  • Сопровождаете старый код? Оператор % по‑прежнему работает, но его заменили f-строки в Python 3.6 — предпочитайте их в новом коде.

Заключение

Округление чисел до двух знаков после запятой — важный прием для повышения точности финансовых и научных расчетов. В этой статье мы рассмотрели различные методы округления до двух знаков после запятой, включая встроенные функции, приемы форматирования строк и модуль math. Важно понимать и выбирать подходящий метод в зависимости от конкретных требований — точности и стиля форматирования. Я призываю вас попрактиковаться с разными методами на различных примерах, чтобы лучше понять, что подходит для ваших сценариев.

Если вы хотите продвинуться в Python, изучите наш трек навыков Python Programming, который охватывает функции, декораторы и продвинутые паттерны Python. Наш карьерный трек Python Developer также поможет прокачать навыки разработчика, изучая более сложные структуры данных и алгоритмы.

Часто задаваемые вопросы

Каков самый простой способ округлить число до двух знаков после запятой в Python?

Самый простой способ округлить число до двух знаков после запятой — использовать встроенную функцию round().

Почему число округляется до ближайшего целого при использовании функции round()?

Метод по умолчанию у функции round() — round half to even. Чтобы округлить число до двух знаков после запятой, необходимо передать второй аргумент 2, то есть round(3.14159, 2).

Как используется функция format() для округления числа до двух знаков после запятой?

Функция format() используется для округления числа до заданного количества знаков после запятой и отображения его в составе форматированной строки.

Что такое round half to even?

Метод округления до ближайшего четного, или банковское округление, предполагает округление числа, находящегося ровно посередине между двумя целыми, к ближайшему четному целому.

Предоставляет ли модуль math округление числа до двух знаков после запятой в Python?

Функции math.floor() и math.ceil() можно использовать только в сочетании с другими арифметическими операциями, чтобы округлить число до заданного количества знаков после запятой.

Почему round(2.675, 2) возвращает 2.67 вместо 2.68?

Это проблема точности представления чисел с плавающей точкой. Значение 2.675 нельзя представить точно в двоичной арифметике с плавающей точкой (IEEE 754); хранимое значение чуть меньше 2.675, поэтому Python округляет вниз до 2.67.

Чтобы избежать этого в финансовом коде, используйте модуль decimal с явным режимом округления: Decimal("2.675").quantize(Decimal("0.01"), rounding=ROUND_HALF_UP) вернет ожидаемое 2.68.

Как округлить все значения в pandas DataFrame до 2 знаков после запятой?

Используйте метод .round() для DataFrame или Series. Чтобы округлить один столбец: df["price"] = df["price"].round(2). Чтобы округлить все числовые столбцы сразу: df = df.round(2).

Темы

Изучайте Python с DataCamp

Course

Introduction to Python

4 ч
6.9M
Master the basics of data analysis with Python in just four hours. This online course will introduce the Python interface and explore popular packages.
ПодробнееRight Arrow
Начать курс
Смотрите большеRight Arrow