все Python 3localeфункция
locale.currency()
числа и деньги
Форматирует сумму денег по правилам LC_MONETARY: символ валюты, его место и число знаков после запятой.
Синтаксис
locale.currency(val, symbol=True, grouping=False, international=False)
В локали 'C' — а она действует, пока не вызван setlocale() — функция не работает вовсе: ValueError «Currency formatting is not possible using the 'C' locale». Значит, сначала setlocale(LC_MONETARY, ...) с установленной в системе локалью, а результат будет разным на разных машинах. Для денег в программе обычно надёжнее Decimal и явный формат.
Примеры
import locale
try:
locale.setlocale(locale.LC_MONETARY, 'ru_RU.UTF-8')
print(locale.currency(1234.5, grouping=True)) # → ? 1 234,50 руб.
except locale.Error:
print('локали ru_RU нет') # → ?
import locale
locale.currency(10) # → ValueError: Currency formatting is not possible using the 'C' locale.
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности