Floating point Jython:将文本解析为包含逗号的浮点

Floating point Jython:将文本解析为包含逗号的浮点,floating-point,jython,string-parsing,Floating Point,Jython,String Parsing,如何将从工作表扫描的浮点值解析为包含逗号的文本 txt = "1,903.44" value = float(txt) # This fails due to ',' in string 更新:对不起,我不清楚。我使用的是Jython2.5,它没有locale模块 txt = "1,903.44" value = float(txt.replace(',', '')) 如果您需要本地化,这将不会真正起作用,但如果您知道逗号是分隔符,它会起作用 如果您需要本地化,这将不会真正起作用,但如果您知

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

txt = "1,903.44"
value = float(txt) # This fails due to ',' in string
更新:对不起,我不清楚。我使用的是Jython2.5,它没有locale模块

txt = "1,903.44"
value = float(txt.replace(',', ''))
如果您需要本地化,这将不会真正起作用,但如果您知道逗号是分隔符,它会起作用


如果您需要本地化,这将不会真正起作用,但如果您知道逗号是分隔符,它会起作用。

locale.setlocale(locale.LC\u ALL')之后使用。
locale.setlocale(locale.LC\u ALL')
您可以去掉逗号:

txt = txt.replace(',', '')
value = float(txt)

您可以去掉逗号:

txt = txt.replace(',', '')
value = float(txt)

我个人会在处理货币值时使用十进制软件包,以避免在使用浮点时出现这种情况

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

正如其他海报所指出的,只有当您的区域设置使用“,”作为千位分隔符时,这才有效,但应该让您朝着正确的方向前进。

我个人在处理货币值时会使用十进制软件包,以避免在使用浮点数时出现这种情况

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

正如其他海报所指出的,只有当您的区域设置使用“,”作为千位分隔符时,这才有效,但应该让您朝着正确的方向前进。

+1只是想补充一点,如果OP处理的是货币值,使用十进制包而不是浮点数可能更明智。没错,这是用于解析发票以获取货币金额的。您可以使用locale.localeconv()['数千_sep']来获取区域设置安全版本的replace idea的分隔符。除了Jython,显然,+1只是想补充一点,如果OP处理的是货币值,那么使用十进制包而不是浮点可能更明智。没错,这是用于解析发票以获取货币金额的。您可以使用locale.localeconv()['数千_sep']来获取区域设置安全版本的replace idea的分隔符。显然,除了Jython,考虑到我没有区域设置模块,这是最简单的。谢谢考虑到我没有区域设置模块,这是最简单的。谢谢