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

时间:2017-09-28 13:16:08

标签: java decimalformat 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

任何人都可以指导我错误的地方吗?工作String的一个例子也很好

1 个答案:

答案 0 :(得分:0)

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