Round Python. Округление

Основы

Введение в тему

Зачастую при вычислениях, а их в работе программиста не мало, мы сталкиваемся с задачами округления. Округлять можно по разному: вверх, вниз и с разной степенью точности. В языке Пайтон для выполнения этого класса задач предусмотрено несколько доступных инструментов: функции round(), int(), а так же модуль math. Но, есть и подводные камни. Обо всём этом Вы узнаете из данного урока.

Встроенные функции

Начнём с рассмотрения встроенных функций: round и int. Что означает «встроенные»? Всё просто: чтобы их использовать не надо ничего подключать или импортировать – просто пишете имя функции и она уже готова к бою.

Round

Функция round – округляет число до необходимой точности (заданного количества знаков после запятой).

Точность является не обязательным параметром и, если её не задать, то Python округлит число, указанное в скобках, до ближайшего целого числа:


результат_округления = round(3.14)
print(результат_округления)
# Вывод:

3

результат_округления = round(3.94)
print(результат_округления)
# Вывод:

4

import math

результат_округления = round(math.pi, 5)
print(результат_округления)
# Вывод:

3.14159


Тут есть одна особенность, о которой нужно знать, и о которой часто забывают.

Со школы многие привыкли, что, когда (N + 1) знак = 5, а последующие знаки равны нулю, округление производится всегда в большую по модулю сторону.

Если дробная часть равна 0,5, то результатом округления будет ближайшее четное число.

При округлении функцией round(), можно получить следующее:

round(2.65, 1) 
# Вывод:
2.6

round(2.85, 1) 
# Вывод:
2.9

Почему в одном случае округляется вниз, а в другом вверх? При переводе 2.85 в двоичную систему получается число, которое немного больше. Поэтому функция и округляет вверх.

Int

Функция int, в целом, ведёт себя как round без заданной точности – округляет до целого, но есть и различия. Разница в том, что round выполняет округление до ближайшего целого числа, а int – в сторону нуля.

результат_округления = int(3.94)
print(результат_округления)
# Вывод:

3

Функции из библиотеки math

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

Math ceil

Название этой функции является сокращением английского слова «ceiling», что переводится как «потолок».

Даная функция округляет число в большую сторону:

import math

результат_округления = math.ceil(3.14)
print(результат_округления)
# Вывод:

4

Math floor

Функция floor является, в каком-то смысле, противоположностью предыдущей, ведь она округляет вниз:

import math

результат_округления = math.floor(3.14)
print(результат_округления)
# Вывод:

3

Math trunc

Эта функция просто отбрасывает дробную часть:

import math

результат_округления = math.trunc(3.14)
print(результат_округления)
# Вывод:

3

Функция trunc идентична функции int. Так же стоит отметить что для положительных чисел функция int аналогична функции math.floor(), а для отрицательных – аналогично math.ceil().

Различие округления в python 2 и python 3

Во втором Пайтоне и в третьем округление построено на принципиально различных алгоритмах.

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

В Python 3 используется, так называемое, банковское округление. В результате язык округляет к ближайшему четному. Этот алгоритм тоже не является абсолютно точным, но, всё же, более совершенный.

Оцените статью
О Python на русском языке
Добавить комментарий

Adblock
detector