私は国際的なプロジェクトに取り組んでおり、Java では、小数点記号の選択がロケールの国ではなく言語に基づいていることを確認しました。例えば:
DecimalFormat currencyFormatter = (DecimalFormat) NumberFormat.getInstance(new Locale("it","IT"));
System.out.println(currencyFormatter.format(-123456.78));
currencyFormatter = (DecimalFormat) NumberFormat.getInstance(new Locale("en","IT"));
System.out.println(currencyFormatter.format(-123456.78));
次の出力が生成されます。
-123.456,78
-123,456.78
私がその国にいる場合、私が英語を話すかイタリア語を話すかに関係なく、その国の数字は小数点区切り記号がカンマで書かれているため、国に続くと予想していました。
私の質問は 2 つあります。
- この行動が言語に従う理由を誰かが知っていますか?
- さらに重要なことは、代わりにJavaのデフォルトの動作を変更して言語に従う方法について、誰かが詳細を提供できますか?
ありがとう。