Why does Python return 0 for simple division calculation?
In Python 2, 25/100
is zero when performing an integer divison. since the result is less than 1
.
You can "fix" this by adding from __future__ import division
to your script. This will always perform a float division when using the /
operator and use //
for integer division.
Another option would be making at least one of the operands a float, e.g. 25.0/100
.
In Python 3, 25/100
is always 0.25
.
This is a problem of integer truncation (i.e., any fractional parts of a number are discarded). So:
25 / 100
gives 0
However, as long as at least one of the operands in the division is a float, you'll get a float result:
25 / 100.0
or 25.0 / 100
or 25.0 / 100.0
all give 0.25