我需要打印小数字(直方图上的百分比),但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"
答案 0 :(得分:2)
老实说,我没有看到任何格式化你所说的分数,可能是现有格式化程序不支持的一个原因。我也想知道你为什么要格式化小数点(只是为了满足我的好奇心)。
但我会做这样的事情,
1。)分开全部金额和小数。 (123123.789789进入123123和789789)
2。)将它们分别格式化。 (123,123和789,789)
3.)将它们与.
字符连接起来并创建所需的输出(123,123.789,789)。
这是一些定制工作,但我个人认为这比从头开始写一些东西要好。
答案 1 :(得分:0)
从你引用的Javadoc中可以清楚地看出,分组只发生在小数点之前。