从字符串中删除冗余符号

boc*_*cco 2 python floating-point

假设我有一个这样的字符串:'12,423,343.93'.如何将其转换为float简单,有效和优雅的方式?

我似乎需要从字符串中删除多余的逗号,然后调用float(),但我没有很好的解决方案.

谢谢

Ned*_*der 9

s = "12,423,343.93"
f = float(s.replace(",", ""))
Run Code Online (Sandbox Code Playgroud)


Bri*_*ian 6

请注意,所使用的分隔符号因国家/地区而异.在某些文化中,"." 用于分隔组,","表示小数点.如果您正在解析用户输入的字符串,则最好使用语言环境模块.例如:

>>> import locale
>>> locale.atof('12,423,343.93')  # No locale set yet, so this will refuse to parse
ValueError: invalid literal for float(): 12,423,343.93   

>>> locale.setlocale(locale.LC_NUMERIC, "en_GB")  # Use a UK locale.
>>> locale.atof('12,423,343.93')
12423343.93
Run Code Online (Sandbox Code Playgroud)