7

以下のコードを使用して、二重番号を #.## にフォーマットする Android アプリを開発しています。

Double BMI = ((fWeight)/(dHeight*dHeight));
DecimalFormat df = new DecimalFormat("0.00");
String sBMI = df.format(BMI);

ハードウェアの言語が英語(デフォルト言語)に設定されている場合のテストでは、正常に動作します。たとえば、BMI が 2497.227216676656 の場合、sBMI は 2497.23 にフォーマットされますが、言語がフランス語に選択されている場合は 2497,23 にフォーマットされます。DOT の代わりに COMMA が使用されているため、アプリがクラッシュします!!!

これの理由は何ですか?

4

2 に答える 2

1

適切な形式を取得するには、コンストラクターではなく、ファクトリの静的メソッドを使用する必要があります。

DecimalFormat df = DecimalFormat.getInstance(Locale.US);

US ロケールを使用すると、フォーマットされたすべてのデータが正しい形式になることが保証されます。

于 2014-03-22T15:34:35.030 に答える