Посмотрите локаль модуль.
Это делает валюту (и дата) форматирование.
>>> import locale
>>> locale.setlocale( locale.LC_ALL, '' )
'English_United States.1252'
>>> locale.currency( 188518982.18 )
'$188518982.18'
>>> locale.currency( 188518982.18, grouping=True )
'$188,518,982.18'
О, это - интересный зверь.
я провел большое количество времени разбирания в этом, существует три основных вопроса, который отличается от локали до локали: - обозначение денежной единицы и направление - тысяча разделителя - десятичная точка
я записал свою собственную довольно обширную реализацию этого, которое является частью платформы Python киви, проверьте источник LGPL:ed здесь:
http://svn.async.com.br/cgi-bin/viewvc.cgi/kiwi/trunk/kiwi/currency.py?view=markup
код является немного конкретным Linux/Glibc, но не должен быть слишком трудным для принятия к окнам или другому unixes.
, После того как Вам установили это, можно сделать следующее:
>>> from kiwi.datatypes import currency
>>> v = currency('10.5').format()
, Который затем даст Вам:
'$10.50'
или
'10,50 kr'
В зависимости от в настоящее время выбираемой локали.
основной момент это сообщение имеет по другому, то, что это будет работать с более старыми версиями Python. locale.currency был представлен в python 2.5.
Я пришел посмотреть на то же самое и обнаружил, что python-money на самом деле еще не использовал его, но, возможно, сочетание двух было бы хорошо
Мои настройки локали казались неполными, поэтому я тоже вышел за рамки этого SO-ответа и обнаружил:
http://docs.python.org/library/decimal.html#recipes
Независимость от ОС
Просто хочу поделиться.
>>> '{:20,.2f}'.format(18446744073709551616.0)
'18,446,744,073,709,551,616.00'