2016-11-09 5 views
0

FR通貨の解析中にUnparseableNumberExceptionが引き続き表示されます。FR通貨の解析中にUnparseableNumberExceptionが発生しました

マイコード:

Locale locale = new Locale("fr", "FR"); 
NumberFormat numberFormat = NumberFormat 
       .getCurrencyInstance(locale); 
try { 
    Number number = numberFormat.parse("€ 314,00"); 
    System.out.println("sadsadsadsad"+number.doubleValue()); 
} catch (ParseException e1) { 
    // TODO Auto-generated catch block 
    e1.printStackTrace(); 
} 

コンソール出力:通貨としてユーロを使用しているフランスでは、

java.text.ParseException: Unparseable number: "€ 314,00" 
    at java.text.NumberFormat.parse(Unknown Source) 
    at PS6.main(PS6.java:26) 
+0

[NumberFormatExceptionとは何か、それを修正する方法](http://stackoverflow.com/questions/39849984/what-is) -a-number -form-in-a-fix-it) – xenteros

答えて

3

、価格はそれの前のスペースで、最後に通貨記号でフォーマットされています;最初ではありません。そのため、"€"シンボルが間違って配置されているため、"€ 314,00"は無効な入力です。代わりに"314,00 €"が必要です。

NumberFormat numberFormat = NumberFormat.getCurrencyInstance(Locale.FRANCE); 
Number number = numberFormat.parse("314,00 €"); 
System.out.println(number); 

また、新しいロケールを作成する代わりに、組み込みのLocale.FRANCEを使用できます。

これは、ユーロを使用するすべての国では当てはまりません。たとえば、アイルランドはスペースのない数字の前にユーロ記号を置きます(小数点記号としてカンマの代わりにドットを使用します)。したがって、ロケールnew Locale("en", "IE")の場合、正しい書式は"€314.00" ...

関連する問題