DecimalFormat twoDFormを使用して小数点以下を減らしている間に、浮動小数点数を解析しようとしています。 は、次のように私は、インスタンス化されている小数点以下の桁数を設定するには、次のいくつかのケースでは、一見ロケールに基づいて DecimalFormatは、ユーザーが異なるロケールを持つ場合にラテン数字を強制的に適用します。
Float.valueOf(twoDForm.format(cameraPosition.x)
が
をスロー:
twoDForm = new DecimalFormat("#.##");
その後、私は、次の呼び出しを行うフロートを解析します
NumberFormatException: Invalid float: "١٥.٨٦" non latin numbers or font
ロケールとAndroidデバイスが数字と記号を扱う方法の違いにより、NumberFormatExceptionでいくつかの異なる問題が発生しています私は別のコンマの種類、およびマイナス記号を使用して、いくつかの例を伴うものを解決することができました
DecimalFormatSymbols dfs = new DecimalFormatSymbols();
dfs.setDecimalSeparator('.');
dfs.setMinusSign('-');
twoDForm.setDecimalFormatSymbols(dfs);
が、今、私が直面しています。lsので、私はまたのDecimalFormatに以下を追加しました java.lang.NumberFormatException:無効な浮動小数点: "15.86"
私はGoogleにアラビア語の本の提案をしているので、別の言語の番号を扱う別の方法だと思っています。それを避けるために "普通の"数字を使うように強制する方法はありますか?それは、それぞれの可能な場合に特定のロケールを追加することなく、同じFloat.valueOf(...)を呼び出すことができますか?
ありがとうございます!
例外が発生するテキストはどうしていますか?どのようなコマンドを呼びますか? –
質問に明記されていない場合は、アラビア数字を使用してください。 –
'.'は定期的な期間ですか?おそらく –