Float Value In A String To Int In Python
Why isn't it possible to directly convert a floating point number represented as a string in Python to an int variable? For example, >>> val=str(10.20) >>> int(va
Solution 1:
The reason is that int
is doing two different things in your two examples.
In your first example, int
is converting a string to an integer. When you give it 10.2
, that is not an integer so it fails.
In your second example, int
is casting a floating point value to an integer. This is defined to truncate any fractional part before returning the integer value.
Solution 2:
There is a way to do this conversion if you are willing to use a third party library (full disclosure, I am the author). The fastnumbers library was written for quick conversions from string types to number types. One of the conversion functions is fast_forceint, which will convert your string to an integer, even if it has decimals.
>>>from fastnumbers import fast_forceint>>>fast_forceint('56')
56
>>>fast_forceint('56.0')
56
>>>fast_forceint('56.07')
56
Post a Comment for "Float Value In A String To Int In Python"