Как я могу форматировать Decimal
с помощью языкового стандарта?
Чтобы описать примеры, я пытаюсь определить функцию f
, такую, что в англоязычной локали:
-
f(Decimal('5000.00')) == '5,000.00'
-
f(Decimal('1234567.000000')) == '1,234,567.000000'
Некоторые вещи, которые не работают:
-
f = str
не использует локаль;f(Decimal('5000.00')) == '5000.00'
-
f = lambda d: locale.format('%f', d)
не сохраняет десятичную точность;f(Decimal('5000.00')) == '5000.000000'
-
f = lambda d: locale.format('%.2f', d)
использует фиксированную точность, и это не то, что я хочу;f(Decimal('1234567.000000')) == '1234567.00'