我在Math.round
和DecimalFormat
等上阅读了很多帖子。但是我不知道id如何在代码中正确使用上述任何一个,而不仅仅是简单声明的变量。
List<Float> depthCopy = new ArrayList<>(depthAdd);
...//collection sort
...//iterate i over arraylist
if (depthCopy.get(i).equals(depthAdd.get(depthAdd.size() - 1))) {
System.out.println("Wettest year: " + (1000 + i) + " "
+ //FORMAT HERE?(depthAdd.get(depthAdd.size() - 1)));
}
}
返回值Wettest year: 2002 1146.3999
1146.3999
是正确的
但是我需要将这个格式化/舍入值打印到1位小数,即:
1146.4
我尝试了以下内容:
System.out.println("Wettest year: " + (1930 + i) + " "
+ (double)Math.round(depthAdd.get(depthAdd.size() - 1)));
返回1146.0
(不正确)
我希望得到的印刷价值是1146.4
。实现这一目标的最佳方法是什么?为什么这种方式比其他替代方案更好?
SOLUTION:而不是Math.round使用DecimalFormat
DecimalFormat df = new DecimalFormat("####.#");
System.out.println("Wettest year: " + (1000 + i) + " "
+ df.format((depthAdd.get(depthAdd.size() - 1)));