「解析できない数を」失敗のNumberFormat通貨の解析

xgrimau:

私が解析しようとするNumberFormatははParseExceptionをスローする「10,10€」。

@Test
public void get_currency_from_text() throws Exception {
    String moneyAsString = "10,10 €";
    //Do not use double for monetary values
    Double moneyAsDouble = 10.10;

    NumberFormat formatter = NumberFormat.getCurrencyInstance(Locale.GERMANY);
    Double parsedMoney = formatter.parse(moneyAsString).doubleValue();
    assertEquals(moneyAsDouble, parsedMoney);
}

これは私がテストを実行したときに、私がスローされたものです

java.text.ParseException: Unparseable number: "10,10 €"

私はかかわらず、これを行うたびそれが正常に動作します:

@Test
public void get_currency_from_text() throws Exception {

    Double moneyAsDouble = 10.10;

    NumberFormat formatter = NumberFormat.getCurrencyInstance(Locale.GERMANY);
    String moneyAsString = formatter.format(moneyAsDouble);
    Double parsedMoney = formatter.parse(moneyAsString).doubleValue();

    System.out.println(moneyAsString);
    //10,10 €

    assertEquals(moneyAsDouble, parsedMoney);
}

、任意のアイデアを、私はそれが宇宙とは何かを持っていると思われるが、私はまだそれを修正する方法がわかりませんか?

Anuj Vishwakarma:

スペースのように思える「10,10€」フォーマッタを期待している右ASCIIではありません。これは、明確に(ここでは言及していますシンボルでパース通貨:すべての場合は、作業- Javaの)フォーマットクラスは「改行なしスペース」として記述されたコード160と炭を期待しています。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=190468&siteId=1