massTotal
打印输出为以“.0”结尾的数字,无论小数点应该是多少。 massCounter[]
索引是 double 。如何将其四舍五入到小数点后第一位,而不是整数?
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));
关于java - 数组舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47428345/