Converting String to Float in Python
In this short tutorial, we look at how we can convert a string object into a floating object. We look at different methods and also discuss the limitations faced when you attempt to convert a string to float in Python.
Table of Contents: Convert string to float in Python
- Why would you need to convert a String to Float?
- Solution: Using the float() function
- Limitation and Caveats
Why would you need to convert a String to Float in Python?
Changing data types in Python is a common practice, and Python has provided us with functions to facilitate this. However, one frequently looked up method is converting a string object in Python to a floating object. The most common places where you would come across this is while reading and working with files. In such cases, you would need to convert numerical values from a string into float/ int before you can use any operations.
Similar to the above example you would come across similar instances where you would need to convert a string to float in Python.
Solution: Using the float() function
In this solution, we use the most common method to convert any data type including a string to float in Python; float().
Syntax of float():
Here x can be an int or a string. It could contain signs, this would not affect the value returned.
Code and Explanation:
f1 = float("123.123") # output: 123.123 f2 = float("1") # output: 1.0 f3 = float(1) # output: 1.0
As you can see the above strings were converted into a floating object. The only thing you should keep in mind is that the string should contain a numerical decimal or integer value, only then would the float function be able to convert the string to float.
To check the data types you can use the type() function before and after using the float(). This function returns the data type of the object.
Similar to float(), values of other data types can be converted into integers and strings using the int(), str().
f1 = int("1") //output: 1 f2 = int(12.3) //output: 12 f3 = str(123) //output: "123" f4 = str(12.3) //output: "12.3"
Limitations and Caveats of the above method for converting string to float in Python
- As mentioned earlier, the string should contain a float value else float() would return ValueError
- If the number is outside the range of a floating variable it would return OverflowError
- And lastly if no value is passed as an argument it returns 0.0