浮动结果不正确

Incorrect float result

我有一个浮点数组中的数字列表(见下文),我必须求和然后计算平均值。例如使用此代码:

for(i=0; i<M; i++)
    sI_Ssum += sI_S[i];

并打印结果:

fprintf(fswaps, "Avg: %.1f", sI_Ssum/M);

我得到了这个明显错误的奇怪结果,但为什么会这样?

75157066131085846000000000000000.0

所有变量都是浮点数。

数组元素:

224230368  
224013664  
223660880  
226627536  
225013760  
224190272  
223501872  
225202688  
224685264  
225468864  
226371200  
224903232  
226204800  
224598128  
225268816  
225997904  
225491536  
224665840  
226138784  
224613424  

我想你忘记初始化了 sI_Ssum

sI_Ssum 设置为 0 -

 sI_Ssum = 0;