我正在尝试为用户/报告上诉设置输出格式,但我发现两个标准有些冲突。
首先,小数值应对齐(格式为“%12.10f”,预测整数值范围 0-99)
其次,小数点不应尾随过多的零。
例如,我的输出看起来像
0.5252772000
0.2053628186
10.5234500000
但是使用通用格式,我最终也会得到:
0.53260000000
0.52630000000
12.43540000000
在某些情况下,它看起来有点垃圾。
有没有简单的方法可以解决这个问题?目前我能想到的唯一解决方案是在打印之前预先询问数据(而不是在打印期间对其进行格式化),这虽然在技术上并不昂贵,但只是让我感到多余的数据处理(即我必须遍历所有数据一次才能找到尾随零的极值来解析它,然后设置格式以便它可以再次遍历数据来解析它)
最佳答案
您可以设置DecimalFormat
:
DecimalFormat format = new DecimalFormat("0.#");
for (float f : yourFloats){
System.out.println(format.format(f));
}
这也适用于 double 。
关于Java:各种精度数据的简单格式标准,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31081439/