Точностью до десятых python

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

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

Введение в функцию Python round()

Округление означает упрощение числа, но сохранение его значения близким к исходному. Например, 89, округленное до ближайшей десятки, равно 90, потому что 89 ближе к 90, чем к 80.

Для округления числа в Python используется встроенная функция round() :

round(number [, ndigits])
Code language: Python (python)

Функция round() округляет число до ближайшего кратного 10 -цифры .

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

Если ndigits опущено или None , то round() вернет ближайшее целое число.

Примеры функции Python round()

Давайте рассмотрим несколько примеров, чтобы лучше понять функцию round() .

1) Примеры функции Python round()

Следующий пример использует функцию round() без передачи ndigits :

round(1.25)
Code language: Python (python)
1
Code language: Python (python)

Возвращается целое число 1 .

Однако если передать ndigits как ноль, функция round() возвращает float 1.0:

round(1.25, 0)
Code language: Python (python)
1.0
Code language: Python (python)

Ниже показано, как функция round() работает под капотом:

Поскольку ndigits равно нулю, функция round() округляет число 1.25 до ближайшего кратного 10 -(0) = 1.

2) Пример функции Python round() с отрицательными однозначными числами

В следующем примере используется функция round() с отрицательными ndigits :

round(15.5, -1)
Code language: Python (python)

Поскольку ndigits равно -1 , функция round() округляет число 15.5 до ближайшего кратного 10 (10 -(-1) ):

Поскольку 15.5 находится между 10 и 20 (кратно 10 ), оно ближе к 10 . Поэтому функция round() возвращает 10 .

3) Пример функции Python round() со связями

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

Например, если вы округлите число 1.25 с n — 1 . Ближайшего числа не будет:

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

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

Как правило, наименьшая значащая цифра в числе — это крайняя правая цифра.

Банковское округление основано на идее, что статистически 50% чисел округляются в большую сторону, а 50% — в меньшую.

round(1.25, 1)
Code language: Python (python)

Потому что наименьшая значащая цифра 1.2 — 2 , что является четным:

Аналогично, округление 1.35 вернет 1.4 :

round(1.35, 1)
Code language: Python (python)

Python использует округление Банкера, но не округление от нуля, потому что оно менее предвзято.

Например, если вы усредните три числа 1.5 , 2.5 и 3.5 , округление от нуля вернет 3 .0, в то время как округление банкира вернет 2.66 :

Число Округление банкира Округление от нуля
1.5 2 2
2.5 2 3
3.5 4 4
Среднее 2.66666… 3.0

Как округлить от нуля

Python не предоставляет прямого способа округления числа от нуля, как можно было бы ожидать. Например:

Число Округление от нуля
1.2 1
1.5 2

Для округления числа от нуля обычно используется следующее выражение:

int(x + 0.5)
Code language: Python (python)

Это выражение правильно работает для положительных чисел. Например:

print(int(1.2 + 0.5)) print(int(1.5 + 0.5))
Code language: Python (python)
1 2
Code language: Python (python)

Однако оно не работает для отрицательных чисел:

print(int(-1.2 + 0.5)) print(int(-1.5 + 0.5))
Code language: Python (python)
0 -1
Code language: Python (python)

Для отрицательных чисел следует вычитать 0,5, а не прибавлять.

Следующий пример работает правильно для отрицательных чисел:

print(int(-1.2 - 0.5)) print(int(-1.5 - 0.5))
Code language: Python (python)

Ниже определена вспомогательная функция, которая округляет число:

def round_up(x): if x > 0: return int(x + 0.5) return int(x - 0.5)
Code language: Python (python)

Модуль Python math предоставляет вам функцию copysign() :

math.copysign(x, y)
Code language: Python (python)

Функция copysign() возвращает абсолютное значение x , но знак y .

И вы можете использовать эту функцию copysign() для разработки функции round_up() без проверки того, является ли x положительным или отрицательным:

from math import copysign def round_up(x): return int(x + copysign(0.5, x))
Code language: Python (python)

Резюме

  • Используйте функцию round(number, ndigits) для округления числа до точности ndigits после десятичной точки.

Источник

№32 Функция round() / для начинающих

Round — встроенная функция Python. Ее задача — округлять число с плавающей точкой до той цифры, которую задает пользователь. Если ее не задать, то возвращается ближайшее целое число, ведь значением по умолчанию является 0. Функция round помогает «улучшать» числа с плавающей точкой.

Например, если округлить 4,5 до ближайшего целого, то вернется 5. Однако 4,7 будет результатом, если округлить до одной цифры 4,74. Быстрое округление — важный инструмент работы с такими числами.

  • Число с плавающей точкой ( float_number ) представляет собой число, которое нужно округлить
  • Количество дробей ( number_of_decimals ) определяет, до какой цифры будет округлено число. Функция возвращает float.
  • Если количество цифр не указано, то по умолчанию там стоит ноль. В таком случае округление происходит до ближайшего целого и возвращается тоже целое число.
  • Если >= 5, то добавляется +1.
  • Если Примеры работы функции round в Python

Пример №1 — один параметр

 
# Целые числа
a = 12
round (a)
print (a)

# Десятичные числа
b = 21.7
c = 21.4
print(round(b))
print(round(c))

Здесь возвращается целое число, до которого и округляется число с плавающей точкой.

Пример №2 — оба параметра

 
# когда последняя цифра 5
a = 5.465
print(round(a, 2))

# когда последняя цифра >=5
b = 5.476
print(round(b, 2))

# когда последняя цифра меньше 5
c = 5.473
print(round(c, 2))

Практические примеры

Пример №1 — функция round помогает при работе с дробями

Когда дроби нельзя конвертировать в десятичные дроби, в дело вступает функция round. После десятичной точки обычно много цифр, как например в случае с 22/7 (Pi). Но обычно используется не больше 2-4 цифр. Вспомогательный встроенный в round тип будет округлять до ближайшего кратного 10.

round(3.675, 2) вернет 3,67, а не 3,68. Удивительно, но это не баг. Результат указывает на то, что большая часть дробей не могут считаться точными числами с плавающей точкой.

 
a = 1/6
print(a)
print(round(a, 2))

Пример №2 — исключения и ошибки

Функция round округлит 2, 2,5 и 1,5 до 2. Это тоже не баг, а нормальное поведение функции.

 
a = 1.5
b = 2
c = 2.5
print(round(a))
print(round(b))
print(round(c))

Если смотреть в целом, то работает функция вот так:

 
tup = (-40.95, 50.85, 10.98, 20.26, 30.05) # Создание кортежа
lis = [-39.29, -42.15 , -39.97, -10.98, 32.65] # Создание списка
print('Округление отрицательного десятичного числа = %.2f' %round(-19.48476))
print('Округление положительного десятичного числа = %.2f' %round(15.98763))
print('Округление со вторым параметром при положительном значении = %.3f' %round(11.98763, 3))
print('Округление со вторым параметром при отрицательном значении = %.3f' %round(-18.48476, 3))
print('Округление элементов в списке = %d' %round(lis[2]))
print('Округление элементов в списке = %d' %round(lis[4]))
print('Округление элементов в кортеже = %d' %round(tup[2]))
print('Округление элементов в кортеже = %d' %round(tup[4]))
print('Округление сумы чисел = %.2f' %round(20 + 40 - 20.6578, 2))
 
Округление отрицательного десятичного числа = -19.00
Округление положительного десятичного числа = 16.00
Округление со вторым параметром при положительном значении = 11.988
Округление со вторым параметром при отрицательном значении = -18.485
Округление элементов в списке = -40
Округление элементов в списке = 33
Округление элементов в кортеже = 11
Округление элементов в кортеже = 30
Округление сумы чисел = 39.34

Есть разные метода функции округления в Python. Одна из них — это сокращение.

Сокращение

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

Например, round(565.5556, -2) используется как функция сокращения. Она вернет 600.

Выводы

Функция round позволяет упростить работу с крупными объемами данных. Ее задача — возвращать число с определенным количеством цифр после точки.

Источник

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

Источник

Читайте также:  Python удаление своего объекта
Оцените статью