我需要在歐洲大陸格式的字符串的貨幣字符串轉換成浮點數:如何將歐元貨幣字符串轉換爲浮動號碼?
輸入:
'6.150.593,22 €'
要認識到小數點是逗號,千位分隔符是一段文字。
輸出:
6150593.22
我讀到這些問題,但它們只適用於美元的貨幣和區域設置:
- How do I convert a currency string to a floating point number in Python?
- python: how to convert currency to decimal?
currency_euros='6.150.593,22 €' float(currency_euros[:-2]) Traceback (most recent call last): File "", line 1, in float(currency_euros[:-2]) ValueError: could not convert string to float: '6.150.593,22'
更新:繼@IrmendeJong答案:
>>> import locale
>>> locale.setlocale(locale.LC_NUMERIC, "es")
'es'
>>> print(locale.currency(6150593.22))
6150593,22 €
>>> money = '6.150.593,22 €'
>>> locale.atof(money)
Traceback (most recent call last):
File "<pyshell#68>", line 1, in <module>
locale.atof(money)
File "C:\Python35\lib\locale.py", line 318, in atof
return func(delocalize(string))
ValueError: could not convert string to float: '6150593.22 €'
>>>
我ashtonished是locale.currency()
工作正常,但它的倒數方法locale.atof()
不起作用。
只需刪除所有點並用逗號替換逗號一個點。去除非浮點字符 –
查看'locale'模塊。 https://docs.python.org/3/library/locale.html –
是的,我知道如何消除字符串的Eur(€)符號,但此時,問題在於locale.atof()doesn不支持貨幣符號字符。 – Trimax