如何将货币格式的String转换回BigDecimal?(使用Java NumberFormat)

kra*_*r65 4 java android locale number-formatting

在我的Android应用程序中,我有一个EditText,我从中获取一个数字,并将其转换为BigDecimal,并从那里转换为本地货币格式:

String s = "100000";
Locale dutch = new Locale("nl", "NL");
NumberFormat numberFormatDutch = NumberFormat.getCurrencyInstance(dutch);
Log.e(this, "Currency Format: "+ numberFormatDutch.format(new BigDecimal(s.toString())));
Run Code Online (Sandbox Code Playgroud)

这打印出€100.000,00与预期一样.然而,我现在想要将其转换回BigDecimal.

有没有办法可以将本地格式的货币字符串转换回BigDecimal?

Gla*_*tor 5

    String s = "100000";
    Locale dutch = new Locale("nl", "NL");
    NumberFormat numberFormatDutch = NumberFormat.getCurrencyInstance(dutch);

    String c = numberFormatDutch.format(new BigDecimal(s.toString()));
    System.out.println("Currency Format: "+ c);
    try {
        Number  d = numberFormatDutch.parse(c);
        BigDecimal bd = new BigDecimal(d.toString());
        System.out.println(bd);
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
Run Code Online (Sandbox Code Playgroud)

货币形式:€100.000,00

100000