Пропустить до содержимого

Как использовать функцию round() в Python?

[

Как округлять числа в Python

by David Amos Jul 03, 2023 23 комментария лучшие практики промежуточный уровень python

В этом руководстве вы узнаете:

  • Почему способ округления чисел имеет значение
  • Как округлить число в соответствии с различными стратегиями округления
  • Как реализовать каждую стратегию на чистом Python
  • Как округление влияет на данные и какая стратегия округления минимизирует этот эффект
  • Как округлять числа в массивах NumPy и DataFrame pandas
  • Когда применять различные стратегии округления

Пройдите тест: проверьте свои знания с помощью нашего интерактивного теста “Округление чисел в Python”. По окончании вы получите оценку, чтобы отслеживать свой прогресс в обучении:

Пройти тест »

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

Вы начнете с рассмотрения встроенного механизма округления в Python.

Встроенная функция round() в Python

Python имеет встроенную функцию round(), которая принимает два числовых аргумента, n и ndigits, и возвращает число n, округленное до ndigits. Значение аргумента ndigits по умолчанию равно нулю, поэтому если его опустить, будет округлено целое число. Как вы увидите, round() может не работать так, как вы ожидаете.

Обычно учат округлять число так:

  • Округлить число n до p десятичных знаков, сдвинув десятичную точку в n на p разрядов. Для этого умножьте n на 10ᵖ (10 в степени p), чтобы получить новое число m.

  • Затем посмотрите на цифру d в первом десятичном разряде m. Если d меньше 5, округлите m вниз до ближайшего целого числа. В противном случае округлите m вверх.

  • Наконец, сдвиньте десятичную точку назад на p разрядов, разделив m на 10ᵖ.

Это алгоритм! Например, число 2,5, округленное до ближайшего целого числа, равно 3. Число 1,64, округленное до одного знака после запятой, равно 1,6.

Теперь откройте сеанс интерпретатора и округлите число 2,5 до ближайшего целого числа с помощью встроенной функции round() в Python:

>>> round(2.5)
3

Это выглядит так, как ожидалось, правда? Но что если вы округлите -1.5 до ближайшего целого числа? Попробуйте:

>>> round(-1.5)
-2

В этом случае round() округляет число вниз, поэтому -1.5 округляется до -2.