double値の配列の「加重移動平均」を取得しようとしています。
いくつかのインターネットの例からすべての平和をまとめようとしましたが、結果として常にゼロになります。
問題は「重量」の計算です。ゼロであってもゼロであってはなりません。たとえば、1 / 107 = 0,0093457943925234 ですが、重量の double 値がゼロになるため、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);
}