如何在 Python 中将 123,456.908
类的字符串转换为 float 123456.908
?
对于 int
s,请参阅 如果字符串中有逗号作为千位分隔符,如何将其转换为数字? , 尽管技术本质上是相同的。
原文由 kevinlu 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在 Python 中将 123,456.908
类的字符串转换为 float 123456.908
?
对于 int
s,请参阅 如果字符串中有逗号作为千位分隔符,如何将其转换为数字? , 尽管技术本质上是相同的。
原文由 kevinlu 发布,翻译遵循 CC BY-SA 4.0 许可协议
…或者不是将逗号视为要过滤掉的垃圾,而是将整个字符串视为浮点数的本地化格式,并使用本地化服务:
from locale import atof, setlocale, LC_NUMERIC
setlocale(LC_NUMERIC, '') # set to your default locale; for me this is
# 'English_Canada.1252'. Or you could explicitly specify a locale in which floats
# are formatted the way that you describe, if that's not how your locale works :)
atof('123,456') # 123456.0
# To demonstrate, let's explicitly try a locale in which the comma is a
# decimal point:
setlocale(LC_NUMERIC, 'French_Canada.1252')
atof('123,456') # 123.456
原文由 Karl Knechtel 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.2k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
2 回答843 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
只需删除
,
和replace()
: