我有很长的双数序列(假设不超过 100 000)。我们还假设每个数字不大于 200 000。如果我下面的算法适合这样的计算?它会足够精确吗?
例如,如果我将 100 000 乘以 200 000 相加,然后除以 100 000,我希望得到介于 199 999 和 200 001 之间的值,但不是 200 100 或类似的值(尽管对于这些特定数字,我的班级似乎工作得很好,谢谢给 MarcinJuraszek 进行测试)
class Candle
{
public Candle(double value)
{
ValueUpdated(value);
}
private double sum = 0;
private double count = 0;
public void ValueUpdated(double value)
{
sum += value;
count++;
}
public double WeightAverage
{
get { return sum / count; }
}
}