2012-08-14 22 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