私は、ユーザーから二重の値をとっているAndroid Javaプログラムを作っています。コンピュータでプログラムを実行すると、コンピュータのロケールEN_UKのためにうまくいきます。しかし、私がFI_FIロケールで自分の携帯電話でそれを実行すると、動作しません。私はその理由を知っています:英国の人々は10進数のセパレータとしてドットを使用しますが、ここでは10進数のセパレータはカンマです。ダブルス、コンマ、ドット
DecimanFormat df = new DecimalFormat("#.#");
Double returnValue = Double.valueOf(df.format(doublenumber));
コンマを使用しているときは、java.lang.NumberFormatException: Invalid double: "1234,5"
と表示されます。
どうすればカンマとドットの両方で動作させることができますか?
のためにこの仕事はなぜあなただけの文字列を解析し、必要に応じてドットでコンマを置き換えるものではありませんか? – guitarflow
あまり賢くない解決策は、すべてのカンマをドットで置き換えてから、ドットで書式設定されているかのように番号を扱うことです。 –