As the title says, in Python (I tried in 2.7 and 3.3.2), why int('0.0')
does not work? It gives this error:
ValueError: invalid literal for int() with base 10: '0.0'
If you try int('0')
or int(eval('0.0'))
it works...
Float() returns the value based on the argument or parameter value that is being passed to it. If no value or blank parameter is passed, it will return the values 0.0 as the floating-point output. Python float values are represented as 64-bit double-precision values.
In Python an strings can be converted into a integer using the built-in int() function. The int() function takes in any python data type and converts it into a integer.
From 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 base is given, then x must be a string or 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 on 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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With