Мне нужно преобразовать строку валюты строку в формате Continental Europe в ряд поплавка:Как конвертировать валюту евро в номер плавающего?
Вход:
'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()
не работает.
Просто удалите все точки и замените запятую точка. Сбросьте символы non float –
Проверьте модуль 'locale'. https://docs.python.org/3/library/locale.html –
Да, я знаю, как удалить символ Eur (€) для строки, но в этот момент возникает вопрос, что locale.atof() doesn 't поддерживать символ символа валюты. – Trimax