1

如何将从工作表扫描的浮点数解析为包含逗号的文本?

txt = "1,903.44"
value = float(txt) # This fails due to ',' in string

更新:对不起,我不清楚。我正在使用 jython 2.5,它没有 locale 模块。

4

4 回答 4

3
txt = "1,903.44"
value = float(txt.replace(',', ''))

如果您需要本地化,这不会真正起作用,但如果您知道逗号是分隔符,它就可以解决问题。

于 2009-04-30T16:32:39.347 回答
3

locale.atof()之后使用locale.setlocale(locale.LC_ALL, '')

于 2009-04-30T16:32:44.697 回答
3

你可以去掉逗号:

txt = txt.replace(',', '')
value = float(txt)
于 2009-04-30T16:33:23.790 回答
0

在处理货币值时,我个人会使用十进制包,以避免使用浮点数时发生的有据可查的陷阱。

from decimal import Decimal
txt = txt.replace (',', '')
value = Decimal(txt)

正如其他海报所指出的,这仅在您的语言环境使用“,”作为千位分隔符的情况下才有效,但应该让您朝着正确的方向前进。

于 2009-04-30T16:46:43.307 回答