2016-10-20 9 views
1

私は、コードのカップルに従うことによって30,00のようなRessiun言語の数字を英語に変換するために使用しますが、それはNumberFormatExceptionを示します。NumberFormat例外何らかの他の言語をアンドロイドで英語に変換する場合

+1

あなたはこれをやってこの問題を解決することができます。 30,00は有効な英語の米国スタイルの番号ではありません。 – ianhanniballake

+0

私は知っている...これは米国のスタイルではありません...しかし、それを米国のスタイルに変換したい... – user3557127

+0

私は適切な方法を知りません....だから。この問題で助けてください...ありがとう – user3557127

答えて

0

これを試すと、コンマとドットを含む数字の解析に役立ちます。

DecimalFormatSymbols symbols = new DecimalFormatSymbols(Locale.US); 
symbols.setDecimalSeparator('.'); 
DecimalFormat twoDecimalForm = new DecimalFormat("#.##", symbols);//Two point 
String finalVal = twoDecimalForm.format(DoubleValue); 
+0

私はロシア語で入力しています... "30,0000"のように...私はネイティブ英語の言語に変換しました... – user3557127

+0

私の問題は大邸宅のおかげで... U私はこの問題を解決するのを助けることができます... – user3557127

+0

これは私にjava.lang.IllegalArgumentExceptionを与える.. – user3557127

0
NumberFormat gereralformat = NumberFormat.getInstance(new Locale("en","us")); 
temp_value = gereralformat.parse(et_input.getText().toString()).doubleValue(); 

これは、小数点記号として使用,(カンマ)の可能性が最も高いです。英数字は.(ドット)です。

0
あなたが数値に文字列を変換しようとしているので、何が起こっている

(int型、float型、ダブル...)

はおそらくet_input.getText().toString()は、予期しない文字であるように,

として

gereralformat.parseに電話する前に、あなたの英語の番号が正しいことを確認してください。あなたは英語米国スタイル番号としてそれを解析したいと言っている、まあ

String newString = string.replace(",", ".");