这是我的数组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
答案 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