2015-11-26 2 views
4

Кто-нибудь знает, как конвертировать int в float.Как преобразовать int в float в python?

По какой-то причине он продолжает печатать 0. Я хочу, чтобы он печатал определенный десятичный знак.

sum = 144 
women_onboard = 314 
proportion_womenclass3_survived = sum/np.size(women_onboard) 
print 'Proportion of women in class3 who survived is %s' % proportion_womenclass3_survived 

ответ

5

Другие, чем ответ Джона, вы можете также сделать один из переменного поплавка, а результат даст поплавок.

>>> 144/314.0 
0.4585987261146497 
+0

Я предпочитаю не делать этого только потому, что вам приходится менять входные данные, которые могут поступать из базы данных или где-то еще (добавив '.0' к числу). Именно поэтому мне нравится, когда поведение по умолчанию делает то, что я хочу, чтобы он делал :), но независимо от того, были ли они здесь для rep, так что +1 от меня :) –

0

В Python 3 это поведение по умолчанию, но если вы не используете, что вы можете импортировать разделение так:

>>> from __future__ import division 
>>> 144/314 
0.4585987261146497 

В качестве альтернативы вы можете бросить одну из переменных к поплавку когда это делаешь ваше подразделение, которое будет делать то же самое

sum = 144 
women_onboard = 314 
proportion_womenclass3_survived = sum/float(np.size(women_onboard)) 
+0

Спасибо SOOOOOOO много он работал !!! : D –

+0

@Mr_Shoryuken yep! Рад, что смог помочь. Когда вы сможете, если можете пометить ответ как принятый, чтобы этот вопрос можно было решить, я был бы признателен! :) –

12

Чтобы преобразовать целое число с плавающей точкой в ​​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 - это поплавок, так что это одно и то же.

1

Вы можете просто умножить 1.0

>>> 1.0*144/314 
0.4585987261146497 
+0

Спасибо, что это работает –