2009年9月29日火曜日

数値を区切りの付いた文字列に変換する

localeモジュールを使う

# -*- coding: utf-8 -*-

import locale

# ロケールを設定する
print locale.setlocale(locale.LC_ALL, "")

# 数値を区切りの付いた文字列に変換する
print locale.format("%d", 123456789, grouping=True)

# 数値を通貨記号の付いた文字列に変換する
print locale.currency(123456789, grouping=True)

# ロケールをen_USに変更する
print locale.setlocale(locale.LC_ALL, ("en_US", "utf-8"))
print locale.format("%d", 123456789, grouping=True)
print locale.currency(123456789, grouping=True)

実行すると
ja_JP.UTF-8
123,456,789
¥123,456,789
en_US.UTF8
123,456,789
$123,456,789.00

Linuxならlocaleコマンドでロケールの情報を取得できる
$ locale -a
C
POSIX
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IN
en_NG
en_NZ.utf8
en_PH.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZW.utf8
ja_JP.utf8

詳細はドキュメントで

0 件のコメント:

コメントを投稿