从字符串中移除冗余符号

2 投票
2 回答
951 浏览
提问于 2025-04-15 14:08

假设我有一个这样的字符串:'12,423,343.93'。我想把它转换成float类型,怎么做才能简单有效又优雅呢?

看起来我需要先把字符串中的多余逗号去掉,然后再调用float(),但我还没有找到好的方法。

谢谢

2 个回答

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
9
s = "12,423,343.93"
f = float(s.replace(",", ""))

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答