2016-12-23 3 views
0

У меня есть список с ценами на автомобили в строке («45.000,00»), я хотел бы преобразовать это значение в float в python.Конвертировать строку реального бразильского в float

Это выглядит следующим образом: 45,000.00 в строке Я хочу, чтобы это так: 45.000.00 в поплавке

+0

Это не дубликат, формат строки отличается от уже заданного вопроса. Вот как вы можете это сделать: Вам нужно отделить десятичную часть и удалить '.', а затем преобразовать в float. Примером этого может быть: значение, десятичное = '45 .000,00'.split (», ') as_float = поплавок (value.replace (, ''.' ')) + С плавающей точкой (' 0. '+ decimal) – ihhcarus

+1

@ihhcarus прочитал второй ответ, в котором показано, как сделать это правильно с помощью локалей: http://stackoverflow.com/a/6633912/3001761. Кроме того, OP показывает три разных формата (один из которых имеет мало смысла) для того, что предположительно является одним и тем же номером, поэтому не совсем понятно, какие входы и выходы должны быть. См. Также, например. http://stackoverflow.com/q/13362121/3001761; string mangling, вероятно, не лучший способ приблизиться к этому. – jonrsharpe

+0

@jonrsharpe Я вижу, я хочу прямо к правильному ответу и пропустил это. Это, безусловно, может помочь. – ihhcarus

ответ

-1

Просто удалите символы «» перед запуском через float.

поплавок ("45,000.00" .Надеть ("", ""))

Edit - неправильно истолковывать. Вы хотите удалить все '.'s, а затем замените', 's на.

float("45.000,00".replace(".", "").replace(",", ".")) 

Однако это немного жестко и противно - лучшим решением было бы использовать некоторую локали библиотеку для обработки значений.

+0

Это неверно. Вы используете '.' в качестве разделителя десятичных чисел, OP использует', ', поскольку это формат BRL money. – ihhcarus

Смежные вопросы