Format a number as currency! I can't find any help on this simple problem.

Bernard bernard.chhun at gmail.com
Tue Oct 10 23:28:15 EDT 2006


>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'English_United States.1252')
'English_United States.1252'
>>> conv = locale.localeconv()
>>> x = 1234567.8
>>> locale.format("%d", x, grouping=True)
'1,234,567'
>>> locale.format("%s%.*f", (conv['currency_symbol'], conv['int_frac_digits'], x), grouping=True)
'$1,234,567.80'

Hi Richards,

This works for me. I agree it's a bit complicated compared to C# but it
works. I'd put it in a function if I had to use it.


Richard Kessler wrote:
> I am relatively new to Python.  Love it, but I find things that I can do
> easily in .NET and cannot find a way to do in Python. I need to format a
> number as currency, for example 12343.56 to $12,343.56.
>
> In C# all I need to do is decimal x = 12343.56 then x.ToString("$###,###.00");
>
> I cannot find a way to do this in Python. I must be missing something very
> simple here. I have tried the locale module but it will not put in the commas.
> I hope I do not have to write my own formatting routine...surely one is out
> there and I just can't find it.
>
> Running on XP Pro. Python 2.4.3.
> 
> Thanks much in advance,
> 
> Richard




More information about the Python-list mailing list