Чтобы преобразовать целое число с плавающей точкой в Python можно использовать следующее:
float_version = float(int_version)
Причина вы получаете 0
, что Python 2 возвращает целое число, если математическая операция (здесь деление) находится между двумя целыми числами. Таким образом, хотя разделение 144 на 314 составляет 0,45 ~~~, Python преобразует это значение в целое число и возвращает только 0
, исключив все числа после десятичной точки.
В качестве альтернативы вы можете преобразовать одно из чисел в любую операцию в поплавок, так как операция между поплавком и целой будет возвращать поплавок. В вашем случае вы можете написать float(144)/314
или 144/float(314)
. Другой, менее общий код, это сказать 144.0/314
. Здесь 144.0
- это поплавок, так что это одно и то же.
Я предпочитаю не делать этого только потому, что вам приходится менять входные данные, которые могут поступать из базы данных или где-то еще (добавив '.0' к числу). Именно поэтому мне нравится, когда поведение по умолчанию делает то, что я хочу, чтобы он делал :), но независимо от того, были ли они здесь для rep, так что +1 от меня :) –