tmytのらくがき

個人の日記レベルです

ローカライズでよくあるはなし

Windows Store Appsって複数言語対応しやすい感じになっています。

ローカライズの問題

Q.以下のコードが返す値はなんでしょうか。

double.Parse("0.88");

A.Windowsでプライマリの言語設定で変わる

  • en-us: 0.88
  • ja-jp: 0.88
  • pt-br: 88.0

ブラジルでは小数点の区切り文字は.(ピリオド)ではなく,(コンマ)なので0.88は88.0でパースされました。こんな時は

double.Parse("0.88", new CultureInfo("en-us"));

とすればいいです。