80

可能重复:
如果字符串中有逗号作为千位分隔符,如何使用 Python 将字符串转换为数字?

我如何将字符串1,000,000(一百万)解析为 Python 中的整数值?

4

3 回答 3

138
>>> a = '1,000,000'
>>> int(a.replace(',', ''))
1000000
>>> 
于 2010-06-01T22:13:38.547 回答
52

还有一种简单的方法可以处理国际化问题:

>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
'en_US.UTF-8'
>>> locale.atoi("1,000,000")
1000000
>>> 

我发现我必须像上面那样首先明确设置语言环境,否则它对我不起作用,我最终会得到一个丑陋的回溯:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/locale.py", line 296, in atoi
    return atof(str, int)
  File "/usr/lib/python2.6/locale.py", line 292, in atof
    return func(string)
ValueError: invalid literal for int() with base 10: '1,000,000'
于 2010-06-02T00:21:09.407 回答
11

将 ',' 替换为 '',然后将整个内容转换为整数。

>>> int('1,000,000'.replace(',',''))
1000000
于 2010-06-01T22:14:10.100 回答