Średnia c # float [] traci dokładność

Próbuję obliczyć średnią dla tablicy pływaków. Muszę użyć indeksów, ponieważ jest to wewnątrz wyszukiwania binarnego, więc górna i dolna część się przesunie. (Duży obraz próbujemy zoptymalizować oszacowanie połowy zakresu, więc nie musimy ponownie tworzyć tablicy dla każdego przejścia).

W każdym razie napisałem niestandardową średnią pętlę i otrzymuję 2 miejsca mniej dokładności niż metoda c # Average ()

float test = input.Average();

int count = (top - bottom) + 1;//number of elements in this iteration
int pos = bottom;
float average = 0f;//working average
while (pos <= top)
{
     average += input[pos];
     pos++;
}
average = average / count;

przykład:

0.0371166766 - c#
0.03711666 - my loop

125090.148 - c#
125090.281 - my loop 

http://pastebin.com/qRE3VrCt

questionAnswers(3)

yourAnswerToTheQuestion