如何计算print语句中int数组的平均值? (Java)的

时间:2015-04-11 20:50:55

标签: java arrays

这是我的数组c: [-33,-22,-11,-5,-4,-3,-2,-1,6,7,8,9,10,11,44,55,66,77,88]

我能够通过这样做找到总和并且它有效:

System.out.println(Arrays.stream(c).sum()));

我尝试了类似的方法来获得平均值:

System.out.printf("%.2f",(Arrays.stream(c).sum()/c.length));

虽然我得到了IllegalFormatConversionException。 当我在计算器上手动执行平均值时,它应该出现在15.78947 ...但我只想在小数点后的2位。我已经尝试了其他的陈述,但那些保持给出的平均值为15并且减去小数。我需要计算print语句中的平均值。我怎么能这样做?

我希望我的输出看起来像这样:15.79

2 个答案:

答案 0 :(得分:1)

double average = Arrays.stream(numbers).average().getAsDouble();

这应该可以解决问题。

答案 1 :(得分:0)

Arrays.stream(c).sum()/ c.length是整数,因为两个参数都是整数。

所以你试图将Integer格式化为float。

您需要显式地将其中一个参数转换为float(或double)以获得十进制结果。

这样的东西
Arrays.stream(c).sum()/(double)c.length