Ich lerne von Currency formatting in Python, verwenden Sie das Modul locale, um Zahlen als Währung zu formatieren. Zum BeispielFormat Zahlen als Währung in Python
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import locale
value = 123456789
l = locale.setlocale(locale.LC_ALL, '') # LC_CTYPE=en_US.UTF-8;LC_NUMERIC=fr_FR.UTF-8;LC_TIME=fr_FR.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=fr_FR.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=fr_FR.UTF-8;LC_NAME=fr_FR.UTF-8;LC_ADDRESS=fr_FR.UTF-8;LC_TELEPHONE=fr_FR.UTF-8;LC_MEASUREMENT=fr_FR.UTF-8;LC_IDENTIFICATION=fr_FR.UTF-8
s = locale.currency(value, grouping=True) # 123 456 789,00 €
locale.setlocale(locale.LC_ALL, 'en_US.utf-8')
s = locale.currency(value, grouping=True) # $123,456,789.00
locale.setlocale(locale.LC_ALL, 'en_US') # WHY? locale.Error: unsupported locale setting
s = locale.currency(value, grouping=True)
Ich möchte Zahlen zu formatieren auf andere Währung, sagen de_DE
. Ich stoße auf das Problem locale.Error: unsupported locale setting
, da das Gebietsschema de_DE
nicht in der Liste der locale -a
ist.
locale.setlocale(locale.LC_ALL, 'de_DE') # locale.Error: unsupported locale setting
s = locale.currency(value, grouping=True)
Eine Lösung besteht darin, dieses Gebietsschema zu meinem Rechner hinzuzufügen. Gibt es einen besseren Weg?
Thx. Ich habe gerade ['babel.numbers.format_currency'] (http://babel.pocoo.org/en/latest/api/numbers.html) unter Ihrem Guide gefunden. – SparkAndShine
Keine Sorge, es ist eine ziemlich saubere Lib, es macht eine Vielzahl von Dingen. Ich habe den Link zu format_currency und dem doc-Beispiel hinzugefügt. –
Ich weiß, dass Sie ohne das Dollarzeichen analysieren können, wenn Sie das Gebietsschema aber mit $ 123.456.789.00 übergeben. Ich bin nicht sicher, wie oder ob Sie damit umgehen können. http://babel.pocoo.org/en/latest/numbers.html#parsing-numbers –