О, это интересный зверь.
Я потратил немало времени, чтобы понять это правильно, есть три основных вопроса, которые различаются в зависимости от локали:
- символ валюты и направление
- разделитель тысяч
- десятичная точка
Я написал свою довольно обширную реализацию этого, которая является частью платформы Python kiwi, посмотрите источник LGPL: ed здесь:
http://svn.async.com.br/cgi-bin/viewvc.cgi/kiwi/trunk/kiwi/currency.py?view=markup
Код немного специфичен для Linux / Glibc, но не должен быть слишком сложным для адаптации к windows или другим unixes.
После того, как вы установили это, вы можете сделать следующее:
>>> from kiwi.datatypes import currency
>>> v = currency('10.5').format()
Что даст вам:
'$10.50'
или
'10,50 kr'
В зависимости от выбранной локали.
Главное, что этот пост имеет над другим, - то, что он будет работать со старыми версиями python. locale.currency был представлен в Python 2.5.