目录
Python: Convert string with comma separator and dot to float
Python:将带逗号分隔符和点的字符串转换为浮点数
要将带有逗号分隔符和点的字符串转换为浮点数:
- 使用
locale.setlocale()
方法将语言环境设置为en_US.UTF-8
。 - 使用该
locale.atof()
方法将字符串转换为浮点数。
主程序
import locale # ✅ Convert string with comma separator and dot to float (locale.atof()) locale.setlocale(locale.LC_ALL, 'en_US.UTF-8') my_str = '456,789.4567' result = locale.atof(my_str) print(result) # 👉️ 456789.4567
该示例使用该locale.atof()
方法将带有逗号和点的字符串转换为浮点数。
我们使用
locale.setlocale()
方法将语言环境设置为en_US.UTF-8
.
主程序
import locale locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
该setlocale()
方法采用类别和语言环境。
类别locale.LC_ALL
设置所有类别的语言环境。
使用用户的首选语言环境
您还可以将语言环境设置为空字符串以使用用户的首选语言环境。
主程序
import locale # ✅ Convert string with comma separator and dot to float (locale.atof()) locale.setlocale(locale.LC_ALL, '') my_str = '456,789.4567' result = locale.atof(my_str) print(result) # 👉️ 456789.4567
当
locale.LC_ALL
属性设置为空字符串时,将使用用户的首选语言环境。
美国的千位分隔符是逗号,所以我们将参数设置为
locale
。locale.atof方法接受一个字符串并将其转换
为浮点数。
主程序
import locale locale.setlocale(locale.LC_ALL, '') my_str = '456,789.4567' result = locale.atof(my_str) print(result) # 👉️ 456789.4567
确保
setlocale()
在调用方法之前使用该方法。 locale.atof()
如果字符串具有下划线分隔符而不是逗号,则此方法也适用。
主程序
import locale locale.setlocale(locale.LC_ALL, '') my_str = '456_789_123.4567' result = locale.atof(my_str) print(result) # 👉️ 456789123.4567
或者,您可以使用该str.replace()
方法。
Python:使用 replace() 将带有逗号分隔符和点的字符串转换为浮点数
这是一个两步过程:
- 使用该
str.replace()
方法从字符串中删除逗号。 - 使用该类
float()
将字符串转换为浮点数。
主程序
my_str = '456,789.4567' result = float(my_str.replace(',', '')) print(result) # 👉️ 456789.4567
str.replace方法返回字符串的副本,其中所有出现的子字符串都被提供的替换项替换。
该方法采用以下参数:
姓名 | 描述 |
---|---|
老的 | 字符串中我们要替换的子串 |
新的 | 每次出现的替换old |
数数 | count 只替换第一次出现的(可选) |
该方法不会更改原始字符串。字符串在 Python 中是不可变的。
从字符串中删除逗号后,我们可以使用该类将其转换为浮点数。
float()
请注意,在某些地区,逗号用作千位分隔符(例如在美国),而在其他一些地区,逗号用作小数点分隔符(例如法国)。
如果使用逗号作为小数点,则调用该replace()
方法两次。
主程序
my_str = '456.789,4567' result = float(my_str.replace('.', '').replace(',', '.')) print(result) # 👉️ 456789.4567
第一次调用该方法会从字符串中replace
删除句点。.
第二次调用用句点替换逗号。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: