浮动(“1000”)有什么问题?

时间:2010-10-28 00:07:09

标签: python

我的Python非常生疏。我有一个Cost列表作为字符串。我正在尝试将它们转换为浮点数,但当成本高于1000美元时,该值用逗号表示。 float(“1,000”)返回错误:

Traceback (most recent call last):
 File "<pyshell#5>", line 1, in <module>
   decimal("1,000")
TypeError: 'module' object is not callable

我知道这可能是微不足道的,但你有解决方案吗?

3 个答案:

答案 0 :(得分:3)

decimal不是float。 decimal是一个模块。这就是你得到错误的原因。

至于逗号,请先放下它们:

s = "1,000"
float(s.replace(",", "")) # = 1000.0

答案 1 :(得分:2)

在转换为float之前,使用re删除任何“,”格式。

>>> import re
>>> re.sub(",", "", "1000,00,00")
'10000000'
>>> 

答案 2 :(得分:1)

引发的错误是因为你试图像这样调用模块:

>>> import decimal
>>> decimal("")
TypeError: 'module' object is not callable

你应该做:

>>> import locale
>>> import decimal
>>> locale.setlocale(locale.LC_ALL, '')
>>> decimal.Decimal(locale.atoi("1,000"))
Decimal('1000')

所以你可以像这样做