2012-08-14 64 views
8

是否有任何方法可以在java中分割双精度数字,以便在逗号出现后所有3位数字组都被分割为一个空格并且只有两个数字?人们很容易将其用逗号分隔:在java中用3组分隔数字

DecimalFormat df = new DecimalFormat("###,###.00"); 
df.format(number); 

所以这235235.234变成234,234.23

我需要的是234 234.23

我怎么能这样做?

回答

17

我相信您的格式字符串中的逗号不是真的是逗号 - 它只是您使用的DecimalFormatSymbols中的分组符号。

试试这个:

// TODO: Consider specifying a locale 
DecimalFormatSymbols symbols = new DecimalFormatSymbols(); 
symbols.setGroupingSeparator(' '); 
DecimalFormat df = new DecimalFormat("###,###.00", symbols); 

或者作为最后一行替代:

DecimalFormat df = new DecimalFormat(); 
df.setDecimalFormatSymbols(symbols); 
df.setGroupingSize(3); 
df.setMaximumFractionDigits(2); 
+0

非常感谢,乔恩斯基特=) – Sergey 2012-08-14 07:31:35

+2

@Sergey不是真的有这个问题/答案相关的,但在java 7及更高版本中,通过使用'_'分隔组,可以提高数字文字的可读性。例如:'public final static long SUNDIAMETER = 1_390_000_000L;' – 2016-09-09 07:44:22