私はフロート番号に欧州大陸形式の文字列の通貨文字列を変換する必要があります。ユーロ通貨文字列を浮動小数点数に変換するには?
入力:
'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 €'
>>>
を私はlocale.currency()
が正常に動作しますが、動作しませんlocale.atof()
その逆数方法ことashtonishedよ。
単にすべての点を削除し、カンマを点。 flood以外の文字を取り除く –
'locale'モジュールをチェックしてください。 https://docs.python.org/3/library/locale.html –
はい、私は文字列のEur(€)記号を削除する方法を知っていますが、この時点で、問題はlocale.atof()doesn通貨記号の文字をサポートしていません。 – Trimax