« デュランデュランが Second Life 世界でコンサート | メイン | Ajax Desktop の比較記事 »
2006年08月08日
世界の「,」(カンマ)と「.」(ピリオド)を解き明かす
エキサイトニュースの 「,」(カンマ)と「.」(ピリオド)の不思議な関係 という記事で、世界各国で数値の表記がどう違うかという話題を取り上げている。
「そしてギリシャは……ギリシャ語がわからん! 調査断念。」
なんて書いてあるけど、こういうのはウェブで各国語を検索するよりも、国際化されたアプリケーションを見てみると回答が得やすい。
たとえば、Windows だと[コントロールパネル]-[地域と言語]-[地域オプション] で「使う言語」を切り替えると、各国での数値のフォーマットや通貨単位、時間の表記などを知ることができる。実際に切り替えなくても選択するだけで表示は変わるので、フォーマットを確認したらキャンセルしてもいい。
各国向けに国際化されたアプリケーションでは、それぞれの国の人がバグレポートを出してくるので、自然に間違いが正されることが多い。ま、メジャーなアプリケーションじゃないと直らないけど。
Java も国際化の扱いは充実してるので、こういった一覧を取ることができる。
国名 | 数字表記 |
アラブ首長国連邦 | 1,234,567.89 |
バーレーン | 1,234,567.89 |
アルジェリア | 1,234,567.89 |
エジプト | 1,234,567.89 |
イラク | 1,234,567.89 |
ヨルダン | 1,234,567.89 |
クウェート | 1,234,567.89 |
レバノン | 1,234,567.89 |
リビア | 1,234,567.89 |
モロッコ | 1,234,567.89 |
オマーン | 1,234,567.89 |
カタール | 1,234,567.89 |
サウジアラビア | 1,234,567.89 |
スーダン | 1,234,567.89 |
シリア | 1,234,567.89 |
チュニジア | 1,234,567.89 |
イエメン | 1,234,567.89 |
インド | १,२३४,५६७.८९ |
イスラエル | 1,234,567.89 |
日本 | 1,234,567.89 |
大韓民国 | 1,234,567.89 |
タイ | 1,234,567.89 |
タイ | ๑,๒๓๔,๕๖๗.๘๙ |
ベトナム | 1.234.567,89 |
中華人民共和国 | 1,234,567.89 |
香港 | 1,234,567.89 |
台湾 | 1,234,567.89 |
ベラルーシ | 1 234 567,89 |
ブルガリア | 1 234 567,89 |
スペイン | 1.234.567,89 |
チェコ | 1 234 567,89 |
デンマーク | 1.234.567,89 |
オーストリア | 1.234.567,89 |
スイス | 1'234'567.89 |
ドイツ | 1.234.567,89 |
ルクセンブルク | 1.234.567,89 |
ギリシア | 1.234.567,89 |
オーストラリア | 1,234,567.89 |
カナダ | 1,234,567.89 |
イギリス | 1,234,567.89 |
アイルランド | 1,234,567.89 |
インド | 1,234,567.89 |
ニュージーランド | 1,234,567.89 |
南アフリカ | 1,234,567.89 |
アルゼンチン | 1.234.567,89 |
ボリビア | 1,234,567.89 |
チリ | 1.234.567,89 |
コロンビア | 1,234,567.89 |
コスタリカ | 1,234,567.89 |
ドミニカ共和国 | 1,234,567.89 |
エクアドル | 1,234,567.89 |
スペイン | 1.234.567,89 |
グアテマラ | 1,234,567.89 |
ホンジュラス | 1,234,567.89 |
メキシコ | 1,234,567.89 |
ニカラグア | 1,234,567.89 |
パナマ | 1,234,567.89 |
ペルー | 1.234.567,89 |
プエルトリコ | 1,234,567.89 |
パラグアイ | 1.234.567,89 |
エルサルバドル | 1,234,567.89 |
ウルグアイ | 1.234.567,89 |
ベネズエラ | 1.234.567,89 |
エストニア | 1 234 567,89 |
フィンランド | 1 234 567,89 |
ベルギー | 1.234.567,89 |
カナダ | 1 234 567,89 |
スイス | 1'234'567.89 |
フランス | 1 234 567,89 |
ルクセンブルク | 1 234 567,89 |
クロアチア | 1.234.567,89 |
ハンガリー | 1 234 567,89 |
アイスランド | 1.234.567,89 |
スイス | 1'234'567.89 |
イタリア | 1.234.567,89 |
リトアニア | 1.234.567,89 |
ラトビア | 1 234 567,89 |
マケドニア | 1.234.567,89 |
ベルギー | 1.234.567,89 |
オランダ | 1.234.567,89 |
ノルウェー | 1 234 567,89 |
ノルウェー | 1 234 567,89 |
ポーランド | 1 234 567,89 |
ブラジル | 1.234.567,89 |
ポルトガル | 1.234.567,89 |
ルーマニア | 1.234.567,89 |
ロシア | 1 234 567,89 |
スロバキア | 1 234 567,89 |
スロベニア | 1.234.567,89 |
アルバニア | 1.234.567,89 |
スウェーデン | 1 234 567,89 |
トルコ | 1.234.567,89 |
ウクライナ | 1.234.567,89 |
アメリカ合衆国 | 1,234,567.89 |
コードは以下。最近 Java 使ってなかったので、いろんなものが思い出せなくて苦労した。書き方とか使ってるクラスとか古臭いかったら申し訳ない。
import java.util.List;
import java.util.ArrayList;
import java.util.Locale;
import java.text.NumberFormat;
import java.io.FileOutputStream;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Writer;
import java.io.IOException;
import java.io.FileNotFoundException;
import java.io.UnsupportedEncodingException;
/**
* show number formats example in all Java-available countries
*
* usage:
* > javac WorldNumberFormats.java
* > java WorldNumberFormats
* (open result.txt with UTF-8 compatible editors/browsers)
*
*/
public class WorldNumberFormats {
public static void main(String argv[]) {
double amount = 1234567.89;
PrintWriter writer = null;
try {
writer =
new PrintWriter(
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("result.txt"), "UTF-8"
)
)
);
Locale[] allLocales = Locale.getAvailableLocales();
for (Locale oneLocale : allLocales) {
String localeCountry = oneLocale.getDisplayCountry();
if (localeCountry == null || localeCountry == "") {
// this locale is language-locale so ignore it
continue;
}
NumberFormat oneFormat =
NumberFormat.getNumberInstance(oneLocale);
writer.println(
localeCountry + " :\t" + oneFormat.format(amount));
}
writer.flush();
writer.close();
} catch (Exception ex) {
if (writer != null) {
writer.flush();
writer.close();
}
ex.printStackTrace();
}
}
}
投稿者 秋元 : 2006年08月08日 17:09
トラックバック
このエントリーのトラックバックURL:
http://labs.cybozu.co.jp/cgi-bin/mt-admin/mt-tbp.cgi/738