我有一段简单的代码并不像应该那样运行。Java:简单的BigDecimal逻辑错误
这段代码试图添加一个BigDecimals数组,然后除以array.length来找到一个平均值。但是,算法的第一阶段无法正确地将数组添加到一起(在变量“sum”中)。
public BigDecimal getAverageHeight()
{
BigDecimal sum = new BigDecimal(0);
BigDecimal[] heights = getAllHeights();
for (int a = 0; a < heights.length; a++)
{
sum.add(heights[a]);
System.out.println("Height[" + a + "] = " + heights[a]);
System.out.println("Sum = " + sum.setScale(2, BigDecimal.ROUND_HALF_UP));
}
return sum.divide(new BigDecimal(heights.length));
}
输出如下:
Height[0] = 24
Sum = 0.00
Height[1] = 24
Sum = 0.00
Height[2] = 24
Sum = 0.00
Height[3] = 26
Sum = 0.00
Height[4] = 26
Sum = 0.00
Height[5] = 26
Sum = 0.00
我敢肯定它的一个简单的错误,但我提前累了这个问题主演的,谢谢。
为了将来的参考,您的问题通过阅读Javadoc解决。 –