我试图找出一个双值数组的“加权移动平均线”。
我试图从一些互联网示例中获得所有和平,但结果我总是得到零。
问题是“重量”的计算,它为零但不应该为零,例如 1 / 107 = 0,0093457943925234 但重量双精度值变为零,我尝试更改为 long 和 decimal 并遇到同样的问题。
有任何想法吗?
public static double WeighteedMovingAverage(double[] data)
{
double aggregate = 0;
double weight;
int item = 1;
int count = data.Count();
foreach (var d in data)
{
weight = item / count;
aggregate += d * weight;
count++;
}
return (double)(aggregate / count);
}