float型数据在运算过程中出现问题,新人一枚,求各位大神助攻

2019-07-20 22:11发布

输入一个单精度浮点型的数组,在循环10次之后求平均然后输出,但是在不断运算的过程中不知道为什么会出现平均值等于-340282366920938480000000000000000000000.000000,往上找的过程中也发现 数值的总和也是-340282366920938480000000000000000000000.000000,但是输入有没问题。网上查了一下,float型的数据的范围为:-2^128~2^128,刚好是这个数,这是什么原因,怎么解决这个问题啊!!!

void account(float32_t x[])                       
{
                        uint32_t i;
                        float32_t nd;
                        float32_t LAT;                               
                        static float32_t sum;
                       
                        for(i=0;i<4800;i++)               
                        {
                                       
                                        sum+=x[i];
                        }
               
                        n++;
                       
                        if(n>=10)                                               
                        {
                                        n=0;
                                        LAT=sum/48000;                       
                                        if(fabs(LAT)==340282366920938480000000000000000000000.000000)
                                        {
                                                                printf("  %f",LAT);
                                                                printf("  %f",sum);
                                                                printf("  %f",x[4799]);
                                                                STM_EVAL_LEDOn(LED6);
                                               
                                                                while(1);
                                        }
                                        nd=powf(10,(LAT-85)/10)/288;               
                                        ND+=nd;
                                        sum=0;
                                printf("  %f",LAT);
                                printf("  %f",ND);


                                       
                        }
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
心平气和
1楼-- · 2019-07-22 03:22
心平气和 发表于 2016-5-15 20:32
上面有人提到了,我加了初始化之后还是会出现那个问题

而且这是改过之后的,之前sum是定义为全局变量的
zdfwyh
2楼-- · 2019-07-22 04:21
贴出你修改过的代码,再看看吧
civic7366
3楼-- · 2019-07-22 05:36
 精彩回答 2  元偷偷看……

一周热门 更多>