Закрыть

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

Цитата дня

Vivazzi.ru

Личный сайт Мальцева Артема

Чтобы стать победителем, сначала нужно победить свою лень.

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

7 апреля 2016 г. 20:05

Округление в python осуществляется функцией round(number, ndigits), где number - округляемое число, а ndigits - количество знаков после запятой. Например:

round(2.137, 2)  # = 2.14

В функции round есть некоторая особенность, которая заключается в том, что она работает по принципу банковского округления для округления чисел, в которых последний знак пятёрка, например:

round(2.05, 1) # = 2.0
round(2.15, 1) # = 2.1
round(2.25, 1) # = 2.3
round(2.35, 1) # = 2.4
round(2.45, 1) # = 2.5
round(2.55, 1) # = 2.5
round(2.65, 1) # = 2.6
round(2.75, 1) # = 2.8
round(2.85, 1) # = 2.9
round(2.95, 1) # = 3.0

Округление происходит по особому принципу. Немного поясню почему так. Банковское (или бухгалтерское) округление позволяет уменьшить погрешности при работе с большим массивом данных. Обычное (или арифметическое) округление даёт нарастающую погрешность из-за того, что для округления в меньшую сторону на конце должны быть цифры: 1, 2, 3, 4 - всего 4 цифр, а в большую: 5, 6, 7, 8, 9 - всего 5 цифр. Неравное количество цифр и вызывают нарастающую погрешность в вычислениях. А банковское округление работает по статистическим законам: вероятность того, что перед пятёркой окажется чётное или нечётное число примерно одинаковая, поэтому такой принцип уменьшает погрешность.

В python округление до верха (в большую сторону) math.ceil(x), а округление до низа (в меньшую сторону) math.floor(x), например:

import math

math.ceil(2.3)  # = 3.0
math.floor(2.7)  # = 2.0

Чтобы получить целое число, нужно просто привести полученный результат в int:

round(2.6)  # = 3.0
int(round(2.6))  # = 3

Чтобы просто отбросить знаки после запятой, можно сделать так:

int(2.6)  # = 2 , что эквивалентно int(math.floor(2.6))

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

5 из 5 (всего 7 оценок)

Поля, отмеченные звёздочкой ( * ) , являются обязательными.

Спасибо за ваш отзыв!

Автор статьи

Права на использование данной статьи, расположенной на настоящей странице http://vivazzi.ru/it/round-python/:

Разрешается копировать статью с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Мальцев Артём
Ссылка на статью: <a href="http://vivazzi.ru/it/round-python/">http://vivazzi.ru/it/round-python/</a>

Подробнее: Правила использования сайта

Вам нужно саморазвиваться или вы хотите зарабатывать деньги?

Или вы ищите хорошие IT сервисы или книги? Сохраните свое время и взгляните на мою подборку рекомендаций, которыми постоянно пользуюсь.
Посмотреть рекомендации

Комментариев: 0

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

Чтобы оставить комментарий от своего имени войдите или зарегистрируйтесь обычным способом или через социальные сети:

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте