massTotal
将以“ .0”结尾的数字打印出来,无论小数应为多少。 massCounter[]
索引是双精度。如何将其舍入到小数点后第一位而不是整数?
public static double massTotal(double[] massCounter) {
double massTotal = 0.0;
for (int i = 0; i < massCounter.length; i++) {
massTotal += Math.round(massCounter[i] * 10.0 / 10.0);
}
return massTotal;
}
谢谢!
最佳答案
您的Math.round
函数基本上是四舍五入,即
1.5-> 2
22.4-> 22
因此,当它们全部合计为方法时,它将始终为x.0
,仅将整数打印为double
,并显示第一个.0
。
您可以做的是完全删除Math.round
,然后使用String.format
打印结果,它将显示输出一位小数。
String.format("%.1f", massTotal(myArray))
甚至更简单,如果允许您使用Java8功能:
double total = DoubleStream.of(myArray).sum();
System.out.println(String.format("%.1f", total));
Online example