Как использовать функцию 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:
Это выглядит так, как ожидалось, правда? Но что если вы округлите -1.5
до ближайшего целого числа? Попробуйте:
В этом случае round() округляет число вниз, поэтому -1.5
округляется до -2
.