Найти тему
Будни питониста

Округление числовых значений.

Часто нужно округлить число с плавающей запятой к числу с фиксированным числом десятичных знаков. Для простого округления можно использовать встроенную функцию round(value, ndigits). Например:

>>> round(1.24, 1)

1.2

>>> round(1.28, 1)

1.3

>>> round(-1.29, 1)

-1.3

>>> round(1.25371,3)

1.254

>>>

Функция round() округляет промежуточные значения к ближайшей четной цифре. То есть значения, такие как 1.5 или 2.5 будут округлены к 2. Число разрядов, передаваемых функции round() может быть отрицательным, когда округление имеет место для десятков, сотен, тысяч и т.д. Например:

>>> а= 2625531

>>> round(a, -1)

2625530

>>> round(a, -2)

2625500

>>> round(a, -3)

2626000

>>>

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

>>> х = 1.234567

>>> format(x, '0.2f')

'1.23'

>>> format(x, '0.3f')

'1.235'

>>> 'numЬer - {:0.3f}' .format(x) 'number - 1.235'

>>>

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

>>> а= 3.1

>>> b = 4.2

>>> с= а+ b

>>> с

7.300000000000001

>>> с= round(c, 2)

>>> с

7.3

>>>

Для большинства приложений, работающих с плавающей точкой, просто рекомендуется это сделать. Если для вас важно предотвращение таких ошибок (например, в финансовых приложениях), рассмотрите использование модуля decimal.