如何在Python中转换类似123,456.908float的字符串123456.908?
Answers:
只需删除,带有replace():
float("123,456.908".replace(',',''))
python cd_size = float("737,280,000".replace(',','')) (我实际上使用过int)
setlocale。
...或者,也可以将整个字符串视为float的本地化格式,而不是将逗号视为要过滤掉的垃圾,并使用本地化服务:
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
Extension modules should never call setlocale()
atof strings的内置方法。我在这里使用的是标准库模块中的函数atof,该函数locale完全不被弃用。
locale.atof
如果您将逗号作为小数点分隔符并将点作为千位分隔符,则可以执行以下操作:
s = s.replace('.','').replace(',','.')
number = float(s)
希望对你有帮助
如果您不知道语言环境,并且想解析任何类型的数字,请使用此parseNumber(text)函数。它不是完美的,但考虑到大多数情况:
>>> parseNumber("a 125,00 €")
125
>>> parseNumber("100.000,000")
100000
>>> parseNumber("100 000,000")
100000
>>> parseNumber("100,000,000")
100000000
>>> parseNumber("100 000 000")
100000000
>>> parseNumber("100.001 001")
100.001
>>> parseNumber("$.3")
0.3
>>> parseNumber(".003")
0.003
>>> parseNumber(".003 55")
0.003
>>> parseNumber("3 005")
3005
>>> parseNumber("1.190,00 €")
1190
>>> parseNumber("1190,00 €")
1190
>>> parseNumber("1,190.00 €")
1190
>>> parseNumber("$1190.00")
1190
>>> parseNumber("$1 190.99")
1190.99
>>> parseNumber("1 000 000.3")
1000000.3
>>> parseNumber("1 0002,1.2")
10002.1
>>> parseNumber("")
>>> parseNumber(None)
>>> parseNumber(1)
1
>>> parseNumber(1.1)
1.1
>>> parseNumber("rrr1,.2o")
1
>>> parseNumber("rrr ,.o")
>>> parseNumber("rrr1rrr")
1
这是我为您写的一种简单方法。:)
>>> number = '123,456,789.908'.replace(',', '') # '123456789.908'
>>> float(number)
123456789.908
re是完成这项任务的重要工具。
float(number)它的描述性风格。+1 ;-)
只需替换,为replace()。
f = float("123,456.908".replace(',',''))
print(type(f)
type()将向您显示它已转换为float
locale模块-其他所有内容只是一个非常讨厌的hack,将来会给您带来麻烦。