Javier Novoa C. Javier Novoa C. - 1 year ago 155
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?

Answer Source

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.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download