How to Format Currency in Python?

Python Tutorials

Formatting currency converts the currency amount of floating or integer type into a comma-separated string that represents the amount of money.

The majority of the currencies separate every three digits of its value by a comma and the fractional part of the currency by a period, the rest do the opposite.

Here are both ways of formatting the currency in Python.

Format currency using str.format()

If you call the built-in str.format(float) method with str as {:,.2f} and float as the currency value, it will format the currency in comma-separated form.

>>> amount = 82341.28
>>> currency = "{:,.2f}".format(amount)
>>> currency

If you need to also output the currency symbol such as $ for dollar, you use str as ${:,.2f}.

>>> currency = "${:,.2f}".format(amount)
>>> currency

Format as period (.) separated currency

In case, the currency separates the main currency part by period (.) and fractional part by comma (,), split the main and fraction part of the currency by using the str.split(sep) method with sep as ".", replace the “,” with “.” in the main currency part and concatenate them back together to form the new string.

>>> amount = 30045.91
>>> currency = "${:,.2f}".format(amount)
>>> main_currency, fractional_currency = currency.split('.')
>>> new_main_currency = main_currency.replace(',', '.')
>>> currency = new_main_currency + "," + fractional_currency
>>> currency

Format currency using locale.currency()

Use the locale.currency(currency, grouping=True) method of the locale module to convert the currency value to a string representation of an amount of money in dollars.

>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
>>> currency = locale.currency(75166.12, grouping=True)
>>> currency

Leave a Reply

Your email address will not be published. Required fields are marked *