Разница между round () и float () в Python - PullRequest
0 голосов
/ 20 декабря 2018

Может ли кто-нибудь объяснить мне, в чем разница между round () и float () в Python, пожалуйста?

Например

x = 9.09128239
x = float("{0:.2f}".format(x))

y = 9.09128239
y = round(y, 2)

Как я вижу, обе функции из приведенного выше кода выполняют одну и ту же работу.Тем не менее, round () кажется мне более компактным и привлекательным.

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

Спасибо за вашу помощь заранее!

Ответы [ 4 ]

0 голосов
/ 20 декабря 2018

Одно из основных отличий состоит в том, что float является классом, а round является функцией .Использование float не округляет число:

float('0.12345') #0.12345

, но round делает:

round(0.12345, 2) #0.12

Используйте float для преобразования чего-либо в число с плавающей точкой и используйте roundокруглить поплавок.

0 голосов
/ 20 декабря 2018

Это форматирует и анализирует строку, что является большой ненужной работой:

x = float("{0:.2f}".format(x))

Это просто округляет число с плавающей точкой, и будет намного быстрее:

y = round(y, 2)
0 голосов
/ 20 декабря 2018

Здесь не функция float выполняет округление.

Как общий термин, float и round делают очень разные вещи. Float принимает допустимый ввод и пытается типизировать его в представление с плавающей запятой. Округление округление до n значащих цифр.

float(3) #works on numbers 
float("5.2") #and strings too!

x = 9.09128239
#x = float("{0:.2f}".format(x)) #there are two steps here.

result = "{0:.2f}".format(x)

#result is a string "9.09" The rounding happened because of the precision listed during string formatting.

x = float(result) #just takes the string and converts to float

y = 9.09128239
y = round(y, 2) #directly works on the float and rounds it off.

Tl; Dr Просто используйте округление.

0 голосов
/ 20 декабря 2018

float () используется для преобразования типа данных в тип float, если применимо.

С другой стороны, используется round () для округления заданного значения до указанного числа десятичных разрядов.

В качестве краткого примечания, то, что вы делаете выше в примере для float () - это получение числа с округлением до указанного числа.из цифр (в вашем примере две), преобразуя его в строку, а затем введите приведение его к типу данных с плавающей точкой.

Для получения дополнительной информации о функции float () вы можете посетить эту страницу: [Builtв функции] (https://docs.python.org/3/library/functions.html#float)

...