In the docs on int :
int(x=0) -> int or long int(x, base=10) -> int or long
If x is not a number or if a base is given, then x must be a string or a Unicode object representing an integer literal in the given base.
So, '0.0' is an invalid integer literal for base 10.
You need:
>>> int(float('0.0')) 0
help int :
>>> print int.__doc__ int(x=0) -> int or long int(x, base=10) -> int or long Convert a number or string to an integer, or return 0 if no arguments are given. If x is floating point, the conversion truncates towards zero. If x is outside the integer range, the function returns a long instead. If x is not a number or if base is given, then x must be a string or Unicode object representing an integer literal in the given base. The literal can be preceded by '+' or '-' and be surrounded by whitespace. The base defaults to 10. Valid bases are 0 and 2-36. Base 0 means to interpret the base from the string as an integer literal. >>> int('0b100', base=0) 4
Ashwini chaudhary
source share