我需要打印小数字(直方图上的百分比),但 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"
最佳答案
老实说,我还没有看到像您所说的那样格式化的小数,这可能是现有格式化程序不支持它的原因之一。我也想知道为什么要格式化小数点(只是为了满足我的好奇心)。
但我会做这样的事情,
1.) 将整数和小数分开。 (123123.789789 变成 123123 和 789789)
2.) 分别格式化它们。 (123,123 和 789,789)
3.) 将它们与 .
字符连接并创建所需的输出 (123,123.789,789)。
这是一些定制工作,但我个人认为这比从头开始编写要好。
关于Java DecimalFormat,是否可以在小数部分进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16273849/