Java DecimalFormat,是否可以在小数部分进行分组?

时间:2013-04-29 08:02:21

标签: java floating-point decimalformat

我需要打印小数字(直方图上的百分比),但java.text.DecimalFormat做一些奇怪的事情。为:

System.out.println((new DecimalFormat("#,##0.######")).format(123456.000123));
System.out.println((new DecimalFormat("#,##0.######")).format(0.000123));
System.out.println((new DecimalFormat("#,##0.###x###x###x###")).format(0.001));

我得到了:

123,456.000123
0.000123
0.001xxx

似乎java.text.DecimalFormat仅用于格式化货币...

是否可以使用java.text.DecimalFormat进行小数部分分组?

或建议任何其他格式库......

我期待这样或类似的事情:

GoodFormater("0.123456") === "0.123'456"

2 个答案:

答案 0 :(得分:2)

老实说,我没有看到任何格式化你所说的分数,可能是现有格式化程序不支持的一个原因。我也想知道你为什么要格式化小数点(只是为了满足我的好奇心)。

但我会做这样的事情,

1。)分开全部金额和小数。 (123123.789789进入123123和789789)

2。)将它们分别格式化。 (123,123和789,789)

3.)将它们与.字符连接起来并创建所需的输出(123,123.789,789)。

这是一些定制工作,但我个人认为这比从头开始写一些东西要好。

答案 1 :(得分:0)

从你引用的Javadoc中可以清楚地看出,分组只发生在小数点之前。