4
Currency formatting in Pythonから学ぶには、localeモジュールを使用して通貨として数値を書式設定します。例えば、数値を通貨として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)
私は他の通貨に番号をフォーマットしたいのですが、de_DE
を言います。ロケールde_DE
がlocale -a
のリストにないため、問題locale.Error: unsupported locale setting
が発生しました。
locale.setlocale(locale.LC_ALL, 'de_DE') # locale.Error: unsupported locale setting
s = locale.currency(value, grouping=True)
1つの解決策は、このロケールを自分のマシンに追加することです。より良い方法がありますか?
Thxを。私はちょうどあなたのガイドの下に['babel.numbers.format_currency'](http://babel.pocoo.org/en/latest/api/numbers.html)を見つけました。 – SparkAndShine
心配する必要はありませんが、それはかなりきちんとしたライブラリです。私は、format_currencyとdocの例へのリンクを追加しました。 –
ロケールに合格すればドル記号なしで解析できますが、 '$ 123,456,789.00'ではどのように扱うことができるかわかりません。 http://babel.pocoo.org/en/latest/numbers.html#parsing-numbers –