Как округлить число в python
Перейти к содержимому

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

Как работает функция round в Python?

Функция Python round() очень полезна, когда мы хотим выполнить операцию округления.

Часто требуется быстро оценить значение, округлив или уменьшив длинные десятичные дроби с плавающей запятой. round() особенно полезен в этом случае.

функция Round

Синтаксис функции Python round()

Функция очень простая. Он берет число и выводит желаемое округленное число.

Здесь нам нужно округлить num , поэтому мы передаем его в round() . Мы также можем указать точность округления с помощью ndigits . Это гарантирует, что число будет округлено с точностью до ndigits после десятичной точки.

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

Кроме того, если число имеет форму x.5 , значения будут округлены в большую сторону, если округленное значение является четным числом. В противном случае оно будет округлено в меньшую сторону.

Например, 2,5 будет округлено до 2, поскольку 2 — ближайшее четное число, а 3,5 будет округлено до 4.

После этого давайте рассмотрим несколько примеров:

1 Целочисленное округление

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

2 Округление в четную сторону

Как упоминалось ранее, если и четная, и нечетная стороны одинаково близки к числу ( x.5 ), то округление произойдет с четной стороной.

3 Округление с помощью ndigit = None.

Если аргумент ndigit не указан (или None ), будет выполнено округление до ближайшего целого числа.

4 Округление с ndigit <0

Мы также можем передать отрицательное значение аргументу ndigit . Округление начнется слева от десятичной точки!

Итак, если у нашего исходного числа 3 цифры после десятичной точки, передача ndigit = -3 удалит эти 3 цифры перед десятичной точкой и заменит их на 0, что даст нам 0!

Аномалии при округлении чисел с плавающей запятой

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

Рассмотрим блок ниже, результаты которого могут быть неожиданными:

Давайте посмотрим еще на несколько примеров:

Опять же, из-за приближения к плавающей запятой мы не получаем точного результата. В первом случае мы ожидали 21.58 , но получили только 21.57 .

Из-за этого всегда будьте осторожны при работе с числами с плавающей запятой, так как эти небольшие изменения вывода могут создать огромные проблемы.

Использование round() для настраиваемых объектов

Метод Python round() внутренне вызывает метод __round__() .

Мы можем переопределить этот метод, если создаем собственный класс. Следовательно, любой вызов round() для нашего объекта вместо этого перейдет к этому переопределяющему методу.

Как видите, мы смогли реализовать нашу собственную функцию округления для объекта MyClass .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *