Javier Novoa C. Javier Novoa C. - 7 months ago 75
Python Question

How do I convert a currency string to a floating point number in Python?

I have some strings representing numbers with specific currency format, for example:


I want to convert this string into the number


What is the best way to achieve this?


Try this:

from re import sub
from decimal import Decimal

money = '$6,150,593.22'
value = Decimal(sub(r'[^\d.]', '', money))

This has some advantages since it uses Decimal instead of float (which is better for representing currency) and it also avoids any locale issues by not hard-coding a specific currency symbol.