com.ibm.icu.text.DecimalFormat 总是抛出 ParseException

com.ibm.icu.text.DecimalFormat always throws ParseException

使用下面的代码我只想允许正数。出于某种原因,我什至无法正确解析字符串:

DecimalFormat dfNoNegative = new DecimalFormat("#,##0.00");
dfNoNegative.setNegativePrefix("");
try {
    System.out.println(dfNoNegative.parse("123.00"));
} catch (ParseException e) {
    System.out.println(e.getMessage());
    System.out.println(e.getErrorOffset());
    e.printStackTrace();
}

错误信息和ErrorOffset:

Unparseable number: "123.00"
6

谁能指导我哪里错了?工作字符串的示例也很好

我的错误是 dfNoNegative.setNegativePrefix(""); 一事无成 ("")。这不起作用,因为字符串直接以数字开头,而 123 不是 "",因此它失败了。基本上,此方法会覆盖应该用作否定前缀的内容(默认为 -)。例如,如果将其设置为 !System.out.println(dfNoNegative.parse("!123.00")); 将打印 -123.