4

我需要打印小数字(直方图上的百分比),但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"
4

2 回答 2

2

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

但我会做这样的事情,

1.) 将整数和小数分开。(123123.789789 转为 123123 和 789789)

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

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

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

于 2013-04-29T08:26:10.060 回答
0

It seems perfectly clear from the Javadoc you cited that grouping only happens before the decimal point.

于 2013-04-29T08:22:35.817 回答