Skip to content Skip to sidebar Skip to footer

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"