Часто нужно округлить число с плавающей запятой к числу с фиксированным числом десятичных знаков. Для простого округления можно использовать встроенную функцию 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.
Будни питониста
:Олег Петухов
Округление числовых значений.
Часто нужно округлить число с плавающей запятой к числу с фиксированным числом десятичных знаков. Для простого округления можно использовать встроенную функцию 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.