2012-01-27 109 views
10

DecimalFormat使用','作为默认分组分隔符。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的正确方法?

+0

这是一个不好的做法,设置组分隔符“\ 0”? – 2016-09-29 19:17:35

回答

2

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