没有用于DecimalFormat的分组分隔符char

时间:2012-01-27 15:27:46

标签: java

DecimalFormat使用','作为默认的分组分隔符。

告诉DecimalFormat我们不想要任何分组分隔符的正确方法是什么?我目前使用symbols.setGroupingSeparator('\ 0'),它似乎工作, 但它看起来很难看。

DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setDecimalSeparator('.');
symbols.setGroupingSeparator('\0');

DecimalFormat df = new DecimalFormat();
df.setDecimalFormatSymbols(symbols);

ParsePosition pp = new ParsePosition(0);
Number result = df.parse("44,000.0", pp);   // this should fail, as I don't want any grouping separatator char.
if (pp.getIndex() != input.length())
   throw new Exception("invalid number: " + input, 0);

告诉DecimalFormat我们不想要任何分组分隔符char的正确方法是什么?

2 个答案:

答案 0 :(得分:34)

通过拨打setGroupingUsed

关闭分组
df.setGroupingUsed(false);

答案 1 :(得分:2)

您可以使用setGroupingUsed()方法,但这不会使格式拒绝该数字,它将停止在第一个分隔符处解析。使用格式进行数字解析将忽略第一个无效字符后的所有内容。