如何将带有位值逗号的数字字符串转换为整数?

时间:2010-02-22 02:20:58

标签: python

在Python中,将“1,374”或“21,000,000”之类的字符串转换为1374或21000000等int值的干净而优雅的方法是什么?

4 个答案:

答案 0 :(得分:9)

这取决于你从哪里得到你的号码。

如果您要转换的号码来自用户输入,请使用locale.atoi()。这样,数字将以与用户设置和期望一致的方式进行解析。

另一方面,如果您从一个文件中读取它,但总是使用相同的格式,请根据您的具体情况使用int("1,234".replace(",", ""))int("1.234".replace(".", ""))。这不仅更易于阅读和调试,而且不受用户的语言环境设置的影响,因此您的解析器可以在任何系统上运行。

答案 1 :(得分:4)

locale.atoi(),在设置了适当的区域设置后。

答案 2 :(得分:2)

int("1,374".replace(",",""))

答案 3 :(得分:2)

>>> s="1,374"
>>> import locale
>>> locale.setlocale(locale.LC_NUMERIC, '')
'en_US.UTF-8'
>>> locale.atoi(s)
1374