数字と貨幣¶
Numberモジュールは、異なる領域に対してフォーマットデジタルを設定する機能を提供します。これは任意の数字と通貨を含む。
デジタルフォーマット設定¶
-
babel.numbers.
format_number
(number, locale='en_US')¶ 特定の領域のためにフォーマットされた所与の数字を返します。
>>> format_number(1099, locale='en_US') u'1,099' >>> format_number(1099, locale='de_DE') u'1.099'
バージョン 2.6.0 で非推奨: Babel.nums.format_decimal()に変更します。
- パラメータ
number -- フォーマットすべき数字
locale -- ♪the Locale オブジェクトまたはエリア設定識別子
-
babel.numbers.
format_decimal
(number, format=None, locale='en_US', decimal_quantization=True, group_separator=True)¶ 特定の領域のためにフォーマットされた所与の10進数を返す。
>>> format_decimal(1.2345, locale='en_US') u'1.234' >>> format_decimal(1.2346, locale='en_US') u'1.235' >>> format_decimal(-1.2346, locale='en_US') u'-1.235' >>> format_decimal(1.2345, locale='sv_SE') u'1,234' >>> format_decimal(1.2345, locale='de') u'1,234'
各領域設定は、適切な千ビットパケットおよび小数セパレータを使用する:
>>> format_decimal(12345.5, locale='en_US') u'12,345.5'
デフォルトの場合、許容領域設定は、高精度な数字のフォーマットモードを小数部分に強制することにより、高精度な数字を切断して丸め込む。属性はこの行為を迂回することができる. decimal_quantization パラメータ:
>>> format_decimal(1.2346, locale='en_US') u'1.235' >>> format_decimal(1.2346, locale='en_US', decimal_quantization=False) u'1.2346' >>> format_decimal(12345.67, locale='fr_CA', group_separator=False) u'12345,67' >>> format_decimal(12345.67, locale='en_US', group_separator=True) u'12,345.67'
- パラメータ
number -- フォーマットすべき数字
format --
locale -- ♪the Locale オブジェクトまたはエリア設定識別子
decimal_quantization -- 高精度な数字を切断し、フォーマットモードに丸め込む。黙認する. True それがそうです。
group_separator -- 領域設定のためのデジタルフォーマットで成分スペーサのブール値をオン/オフする。
-
babel.numbers.
format_currency
(number, currency, format=None, locale='en_US', currency_digits=True, format_type='standard', decimal_quantization=True, group_separator=True)¶ フォーマットされた貨幣価値を返す。
>>> format_currency(1099.98, 'USD', locale='en_US') u'$1,099.98' >>> format_currency(1099.98, 'USD', locale='es_CO') u'US$\xa01.099,98' >>> format_currency(1099.98, 'EUR', locale='de_DE') u'1.099,98\xa0\u20ac'
フォーマットはまた明示的に指定することができる。通貨の位置には‘というマークがあります。記号が繰り返されるにつれて、フォーマットが拡張されます(?記号ですか?通貨の略語ですか?貨幣の全称):?
>>> format_currency(1099.98, 'EUR', u'¤¤ #,##0.00', locale='en_US') u'EUR 1,099.98' >>> format_currency(1099.98, 'EUR', u'#,##0.00 ¤¤¤', locale='en_US') u'1,099.98 euros'
通貨は一般的に特定の数の小さな数を持っている。この関数は、所与のフォーマットの情報よりも優先的である。
>>> format_currency(1099.98, 'JPY', locale='en_US') u'\xa51,100' >>> format_currency(1099.98, 'COP', u'#,##0.00', locale='es_ES') u'1.099,98'
しかし,最後のパラメータを設定することで,通貨情報中の小さな数桁をカバーすることができる.
False
:>>> format_currency(1099.98, 'JPY', locale='en_US', currency_digits=False) u'\xa51,099.98' >>> format_currency(1099.98, 'COP', u'#,##0.00', locale='es_ES', currency_digits=False) u'1.099,98'
フォーマットが指定されていない場合には、領域設定で使用する通貨フォーマットのタイプを指定することができる:
>>> format_currency(1099.98, 'EUR', locale='en_US', format_type='standard') u'\u20ac1,099.98'
所与の通貨フォーマットタイプが利用できない場合、例外が開始される:
>>> format_currency('1099.98', 'EUR', locale='root', format_type='unknown') Traceback (most recent call last): ... UnknownCurrencyFormatError: "'unknown' is not a known currency format type"
>>> format_currency(101299.98, 'USD', locale='en_US', group_separator=False) u'$101299.98'
>>> format_currency(101299.98, 'USD', locale='en_US', group_separator=True) u'$101,299.98'
Format_type=“name”を転送して、長い表示名を使用することもできます。数字と通貨名の順序および通貨名の正確な現地化複数形式は、領域設定に応じて選択される:
>>> format_currency(1, 'USD', locale='en_US', format_type='name') u'1.00 US dollar' >>> format_currency(1099.98, 'USD', locale='en_US', format_type='name') u'1,099.98 US dollars' >>> format_currency(1099.98, 'USD', locale='ee', format_type='name') u'us ga dollar 1,099.98'
デフォルトの場合、許容領域設定は、高精度な数字のフォーマットモードを小数部分に強制することにより、高精度な数字を切断して丸め込む。属性はこの行為を迂回することができる. decimal_quantization パラメータ:
>>> format_currency(1099.9876, 'USD', locale='en_US') u'$1,099.99' >>> format_currency(1099.9876, 'USD', locale='en_US', decimal_quantization=False) u'$1,099.9876'
- パラメータ
number -- フォーマットすべき数字
currency -- 貨幣コード.
format -- 使用するフォーマット文字列
locale -- ♪the Locale オブジェクトまたはエリア設定識別子
currency_digits -- 貨幣を使う自然小数桁
format_type -- 使用する通貨フォーマットタイプ
decimal_quantization -- 高精度な数字を切断し、フォーマットモードに丸め込む。黙認する. True それがそうです。
group_separator -- 領域設定のためのデジタルフォーマットで成分スペーサのブール値をオン/オフする。
-
babel.numbers.
format_percent
(number, format=None, locale='en_US', decimal_quantization=True, group_separator=True)¶ 特定の領域設定のフォーマットパーセント値に戻ります。
>>> format_percent(0.34, locale='en_US') u'34%' >>> format_percent(25.1234, locale='en_US') u'2,512%' >>> format_percent(25.1234, locale='sv_SE') u'2\xa0512\xa0%'
フォーマットモードを明示的に指定することもできる:
>>> format_percent(25.1234, u'#,##0‰', locale='en_US') u'25,123‰'
デフォルトの場合、許容領域設定は、高精度な数字のフォーマットモードを小数部分に強制することにより、高精度な数字を切断して丸め込む。属性はこの行為を迂回することができる. decimal_quantization パラメータ:
>>> format_percent(23.9876, locale='en_US') u'2,399%' >>> format_percent(23.9876, locale='en_US', decimal_quantization=False) u'2,398.76%'
>>> format_percent(229291.1234, locale='pt_BR', group_separator=False) u'22929112%'
>>> format_percent(229291.1234, locale='pt_BR', group_separator=True) u'22.929.112%'
- パラメータ
number -- the percent number to format
format --
locale -- ♪the Locale オブジェクトまたはエリア設定識別子
decimal_quantization -- 高精度な数字を切断し、フォーマットモードに丸め込む。黙認する. True それがそうです。
group_separator -- 領域設定のためのデジタルフォーマットで成分スペーサのブール値をオン/オフする。
-
babel.numbers.
format_scientific
(number, format=None, locale='en_US', decimal_quantization=True)¶ 特定の領域に科学記数法でフォーマットされた返り値を設定する.
>>> format_scientific(10000, locale='en_US') u'1E4'
フォーマットモードを明示的に指定することもできる:
>>> format_scientific(1234567, u'##0.##E00', locale='en_US') u'1.23E06'
デフォルトの場合、許容領域設定は、高精度な数字のフォーマットモードを小数部分に強制することにより、高精度な数字を切断して丸め込む。属性はこの行為を迂回することができる. decimal_quantization パラメータ:
>>> format_scientific(1234.9876, u'#.##E0', locale='en_US') u'1.23E3' >>> format_scientific(1234.9876, u'#.##E0', locale='en_US', decimal_quantization=False) u'1.2349876E3'
- パラメータ
number -- フォーマットすべき数字
format --
locale -- ♪the Locale オブジェクトまたはエリア設定識別子
decimal_quantization -- 高精度な数字を切断し、フォーマットモードに丸め込む。黙認する. True それがそうです。
デジタル解析¶
-
babel.numbers.
parse_number
(string, locale='en_US')¶ 局所化デジタル文字列を整数に解析する.
>>> parse_number('1,099', locale='en_US') 1099 >>> parse_number('1.099', locale='de_DE') 1099
与えられた文字列が解析できない場合、異常を引き起こす:
>>> parse_number('1.099,98', locale='de') Traceback (most recent call last): ... NumberFormatError: '1.099,98' is not a valid number
- パラメータ
string -- 解析する文字列
locale -- ♪the Locale オブジェクトまたはエリア設定識別子
- 戻り値
解析的数字
- 例外
NumberFormatError -- 文字列が数字に変換できない場合
-
babel.numbers.
parse_decimal
(string, locale='en_US', strict=False)¶ 局所化した10進数文字列を小数に解析した.
>>> parse_decimal('1,099.98', locale='en_US') Decimal('1099.98') >>> parse_decimal('1.099,98', locale='de') Decimal('1099.98') >>> parse_decimal('12 345,123', locale='ru') Decimal('12345.123')
与えられた文字列が解析できない場合、異常を引き起こす:
>>> parse_decimal('2,109,998', locale='de') Traceback (most recent call last): ... NumberFormatError: '2,109,998' is not a valid decimal number
もし strict とする. True そして、与えられた文字列が不規則にフォーマットされた数字を含むと、異常を引き起こす。
>>> parse_decimal('30.00', locale='de', strict=True) Traceback (most recent call last): ... NumberFormatError: '30.00' is not a properly formatted decimal number. Did you mean '3.000'? Or maybe '30,00'?
>>> parse_decimal('0.00', locale='de', strict=True) Traceback (most recent call last): ... NumberFormatError: '0.00' is not a properly formatted decimal number. Did you mean '0'?
- パラメータ
string -- 解析する文字列
locale -- ♪the Locale オブジェクトまたはエリア設定識別子
strict -- 制御は奇妙な方法でフォーマットされた数字を受け入れるか拒否するか
- 例外
NumberFormatError -- 文字列が10進数に変換できない場合
例外¶
データアクセス¶
-
babel.numbers.
get_currency_name
(currency, count=None, locale='en_US')¶ 指定された通貨の領域を返して使用する名前を設定します。
>>> get_currency_name('USD', locale='en_US') u'US Dollar'
バージョン 0.9.4 で追加.
- パラメータ
currency -- 貨幣コード。
count -- オプションカウント。提供される場合、通貨名は、その数字(可能であれば)に複数化される。
locale -- ♪the Locale オブジェクトまたは領域に識別子を設定します。
-
babel.numbers.
get_currency_symbol
(currency, locale='en_US')¶ 指定された通貨の領域設定に使用するシンボルを返します。
>>> get_currency_symbol('USD', locale='en_US') u'$'
- パラメータ
currency -- 貨幣コード。
locale -- ♪the Locale オブジェクトまたは領域に識別子を設定します。
-
babel.numbers.
get_currency_unit_pattern
(currency, count=None, locale='en_US')¶ 所定の領域設定貨幣値を長時間表示するための単位モードに戻る。これは以下のものを含む文字列である
{{0}}
数字の部分は置き換えられなければなりません{{1}}
その中で、通貨長を置き換えて名前を表示しなければなりません>>> get_currency_unit_pattern('USD', locale='en_US', count=10) u'{0} {1}'
バージョン 2.7.0 で追加.
- パラメータ
currency -- 貨幣コード。
count -- オプションカウント。提供されれば、その番号の単位モードに戻る。
locale -- ♪the Locale オブジェクトまたは領域に識別子を設定します。
-
babel.numbers.
get_decimal_symbol
(locale='en_US')¶ 戻り領域は、小数を区切るためのシンボルを設定する。
>>> get_decimal_symbol('en_US') u'.'
- パラメータ
locale -- ♪the Locale オブジェクトまたはエリア設定識別子
-
babel.numbers.
get_plus_sign_symbol
(locale='en_US')¶ 現在の領域に戻り、使用するプラス記号を設定します。
>>> get_plus_sign_symbol('en_US') u'+'
- パラメータ
locale -- ♪the Locale オブジェクトまたはエリア設定識別子
-
babel.numbers.
get_minus_sign_symbol
(locale='en_US')¶ 現在の領域に戻り、使用するプラス記号を設定します。
>>> get_minus_sign_symbol('en_US') u'-'
- パラメータ
locale -- ♪the Locale オブジェクトまたはエリア設定識別子
-
babel.numbers.
get_territory_currencies
(territory, start_date=None, end_date=None, tender=True, non_tender=False, include_details=False)¶ 所与の地域が所与の日の範囲内で有効な通貨リストを返します。このほか,通貨データベースは入札通貨と非入札通貨を区別する.デフォルトの場合は,入札通貨のみを返す.
返り値はすべての通貨のリストであり,通貨起動時間ごとに大まかにソートされる.通貨使用時間が長いほど、リストの位置が左になる。
開始日は今日だと黙認していた。終了日が指定されていない場合、それは開始日と同じになるだろう。そうでなければ,1つの範囲を定義することができる.例えば、これは1995年から2011年までのオーストリアで使用された通貨を探すために使用することができる。
>>> from datetime import date >>> get_territory_currencies('AT', date(1995, 1, 1), date(2011, 1, 1)) ['ATS', 'EUR']
同じように、1つの日に使用されているすべての通貨を見つけることもできます:
>>> get_territory_currencies('AT', date(1995, 1, 1)) ['ATS'] >>> get_territory_currencies('AT', date(2011, 1, 1)) ['EUR']
デフォルトの場合,返り値は入札通貨のみを含む.しかしこれは変更できます
>>> get_territory_currencies('US') ['USD'] >>> get_territory_currencies('US', tender=False, non_tender=True, ... start_date=date(2014, 1, 1)) ['USN', 'USS']
バージョン 2.0 で追加.
- パラメータ
territory -- 通貨の地域の名前を調べなければなりません。
start_date -- 開始日。もし与えられていなければ、今日だと仮定する。
end_date -- 終了日。与えられていなければ,開始日を仮定する.
tender -- 入札通貨が含まれなければならないかどうかを制御する。
non_tender -- 統制が非入札通貨を含まなければならないかどうか。
include_details -- if set to True, instead of returning currency codes the return value will be dictionaries with detail information. In that case each dictionary will have the keys
'currency'
,'from'
,'to'
, and'tender'
.