Open In App

Convert String with Comma To Float in Python

Last Updated : 06 Feb, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

When working with data in Python, it’s not uncommon to encounter numeric values formatted with a mix of commas and dots as separators. Converting such strings to float is a common task, and Python offers several simple methods to achieve this. In this article, we will explore five generally used methods for converting a string with a comma separator and dot to a float.

Convert String With Comma Separator And Dot To Float

Below, are the ways to Convert a String With a Comma Separator And Dot To Float in Python.

Convert String With Comma Separator to Float Using replace() Method

In this example, below Python code converts the numeric string “1,234.56” to a float by removing the comma and then prints the result. The float_value variable holds the numeric value without the comma, allowing proper conversion to a float type.

Python3




numeric_string = "1,234.56"
float_value = float(numeric_string.replace(',', ''))
print(float_value)


Output

1234.56

Convert String With Comma Separator to Float Using regex Module

In this example, below Python code uses the `re` module to remove non-digit and non-dot characters from the numeric string “1,234.56”, converting it to a float. The result, without commas, is then printed.

Python3




import re
  
numeric_string = "1,234.56"
float_value = float(re.sub(r'[^\d.]', '', numeric_string))
print(float_value)


Output

1234.56

Convert String With Comma Separator to Float Using split() Method

In this example, below Python code processes the numeric string “1,234.56” by splitting it into parts separated by commas, removing dots and whitespace, and then joining them back to form a valid float representation. The result is a float value without commas, and it is printed.

Python3




numeric_string = "1,234.56"
parts = [part.strip().replace('.', '') for part in numeric_string.split(',')]
float_value = float('.'.join(parts))
print(float_value)


Output

1.23456

Using locale Module

In this example, below Python code employs the `locale` module to interpret the numeric string “1,234.56” as a float in the English (United States) locale, handling comma as a thousands separator. The result is printed after conversion using `locale.atof`

Python3




import locale
  
numeric_string = "1,234.56"
locale.setlocale(locale.LC_NUMERIC, 'en_US.UTF-8'# Set the locale to English (United States)
float_value = locale.atof(numeric_string)
print(float_value)


Output

1234.56

Conclusion

In conclusion, converting a string with comma separator and dot to a float in Python can be achieved through various methods. The choice of method depends on the complexity of the input data and the desired level of flexibility and localization support. Consider the specific requirements of your project when selecting the most appropriate method for your use case.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads