Does anyone know how to convert
For some reason, it keeps on printing 0. I want it to print a specific decimal.
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
Other than John's answer, you could also make one of the variable float, and the result will yield float.
>>> 144 / 314.0 0.4585987261146497
.0to the number). Which is why I like to make the default behavior do what I want it to do :) but regardless were all on here for rep so +1 from me : - John Ruddell 2015-11-26 17:27
To convert an integer to a float in Python you can use the following:
float_version = float(int_version)
The reason you are getting
0 is that Python 2 returns an integer if the mathematical operation (here a division) is between two integers. So while the division of 144 by 314 is 0.45~~~, Python converts this to integer and returns just the
0 by eliminating all numbers after the decimal point.
Alternatively you can convert one of the numbers in any operation to a float since an operation between a float and an integer would return a float. In your case you could write
144/float(314). Another, less generic code, is to say
144.0 is a float so it’s the same thing.
In Python 3 this is the default behavior, but if you aren't using that you can import division like so:
>>> from __future__ import division >>> 144/314 0.4585987261146497
Alternatively you can cast one of the variables to a float when doing your division which will do the same thing
sum = 144 women_onboard = 314 proportion_womenclass3_survived = sum / float(np.size(women_onboard))
You can just multiply
>>> 1.0*144/314 0.4585987261146497