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

10-06 14:13