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

Округление в Python

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

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

Округление с помощью функции round

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

Округление до двух знаков после десятичной точки

number = 12.443 print(round(number, 2)) 12.44

Округление до 0 знаков

Обратите внимание, что если вторым параметром указать 0, то будет округлено до 0 знаков после десятичной точки, но при этом результат будет вещественным.

number = 12.443 print(round(number, 0)) 12.0

Чтобы округлить до целого, нужно убрать второй параметр из функции round().

number = 12.443 print(round(number)) 12

Округление Decimal

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

Читайте также:  Create file java mkdirs

Округление большого количества чисел

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

Округление NumPy

Numpy — это библиотека для Python, с помощью которой можно выполнять самые разные математические вычисления. Сама библиотека написана на языке C, что делает её очень быстрой.

Источник

Округление в Python — round, int, модуль math

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

В Python для округления доступны функции round() , int() и модуль math . Последний дополнительно импортируется.

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

Для операции округления в Python есть встроенные функции — round() и int()

round

round(number[, ndigits]) — округляет число (number) до ndigits знаков после запятой. Это стандартная функция, которая для выполнения не требует подключения модуля math.

По умолчанию операция проводится до нуля знаков — до ближайшего целого числа. Например:

round(3.5) > 4 round(3.75, 1) > 3.8

Чтобы получить целый показатель, результат преобразовывают в int .

Синтаксически функция вызывается двумя способами.

  1. round(x) — это округление числа до целого, которое расположено ближе всего. Если дробная часть равна 0,5, то округляют до ближайшего четного значения.
  2. round(x, n) — данные х округляют до n знаков после точки. Если округление проходит до сотых, то n равен «2», если до тысячных — «3» и т.д.

int

int — встроенная функция, не требующая подключения дополнительных модулей. Её функция — преобразование действительных значений к целому путем округления в сторону нуля. Например:

Для положительных чисел функция int аналогична функции math.floor() , а для отрицательных — аналогично math.ceil() . Например:

import math math.floor(3.999) > 3 math.ceil(3.999) > 4

💡 Чтобы число по int преобразовать по математическим правилам, нужно выполнить следующие действия.

Синтаксически преобразование оформляется так:

num = 5.77 int(num + (0.5 if num > 0 else -0.5)) > 6

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

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

math.ceil

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

Любая дробь находится между двумя целыми числами. Например, 2.3 лежит между 2 и 3. Функция ceil() определяет большую сторону и возводит к нему результат преобразования. Например:

import math math.ceil(3.25) > 4

Алгоритм определяет большую границу интервала с учетом знака:

import math math.ceil(-3.25) > -3

math.floor

math.floor() действует противоположно math.ceil() — округляет дробное значение до ближайшего целого, которое меньше или равно исходному. Округление происходит в меньшую сторону (вниз):

import math math.floor(3.9) > 3 math.floor(-2.1) > -3

При округлении учитывается знак перед данными.

math.trunc

Функция характеризуется отбрасыванием дробной части. После преобразования получается целое значение без учета дроби. Такой алгоритм не является округлением в арифметическом смысле. В Пайтон просто игнорируется дробь независимо от ее значения:

import math math.trunc(7.11) > 7 math.trunc(-2.1) -2

💡 Избавиться от дроби можно без подключения модуля. Для этого есть стандартная функция int Она преобразовывает дробные числа в целые путем игнорирования дроби.

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

В Python 2 и Python 3 реализованы разные принципы округления.

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

Во втором Python есть только 4 цифры, которые ведут к преобразованию к меньшему значению — 1, 2, 3 и 4. Также 5 цифр, которые приводят к большему значению — 5, 6, 7, 8, 9. Такое неравное распределение ведет к тому, что погрешность постоянно нарастает.

Python 2 по правилам арифметического округления преобразует число 5,685 в 5,68 до второго знака. Такая погрешность связана с тем, что десятичные цифры float в двоичном коде невозможно корректно представить.

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

2,5 по правилам банковского преобразования будет равно 2, а 3,5 = 4 (значения возводятся к близкому четному). Минимизировать погрешности можно благодаря практически равной вероятности, что перед пятеркой будет четное или нечетное число.

Источник

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(), можно получить следующее:

Источник

Оцените статью