Python3 Функция round()

Python3 数字Числа в Python3


Описание

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

Если требуется высокая точность, эту функцию использовать не рекомендуется.


Синтаксис

Ниже приведен синтаксис метода round():

round( x [, n]  )

Parameters

  • x -- числовое выражение.
  • n -- указывает количество цифр после десятичной точки, до которых нужно округлить x; значение по умолчанию — 0.

Возвращаемое значение

Возвращает округленное значение числа с плавающей запятой x.

Примеры

Ниже показан пример использования метода round():

Примеры

#!/usr/bin/python3

print ("round(70.23456) : ", round(70.23456))
print ("round(56.659,1) : ", round(56.659,1))
print ("round(80.264, 2) : ", round(80.264, 2))
print ("round(100.000056, 3) : ", round(100.000056, 3))
print ("round(-100.000056, 3) : ", round(-100.000056, 3))

Вывод приведённого выше примера после запуска:

round(70.23456) :  70
round(56.659,1) :  56.7
round(80.264, 2) :  80.26
round(100.000056, 3) :  100.0
round(-100.000056, 3) :  -100.0

Взгляните на пример, приведённый на официальном сайте:

>>> round(2.675, 2) 
2.67

Согласно нашим рассуждениям, возвращаемый результат должен быть 2.68, но результат — 2.67. Почему?

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

Python3 数字Числа в Python3

Другие расширения