打印

430乘法运算错误

[复制链接]
766|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
309030|  楼主 | 2017-2-26 17:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
while(1)
{     
  // if(a==0XFF)        //显示对应频率ad值
   //{   

   //     if(f1==0)         //直流电压
   //     {
  //          i=f1;
           // LEDA(sqrt(data[i].real*data[i].real+data[i].imag*data[i].imag)/64);
  //      }
      //  else
     //   {
         //   i=f1/8;    //(1024/NUM); //对应频率的ad,有1024/NUM=8的误差
            max=0;
            for(i=0;i<NUM/2;i++)
            {

          x[i].real=0.2;
          x[i].imag=0;
             // result[i]= ((x[i].real)*(x[i].real)+(x[i].imag)*(x[i].imag))*1.0f;
          temp=3.6;
          result[i]=(3.6*3.6);
              if(max<(result[i]))
              {
                max=result[i];
                index=i;

              }
            }

           index=(int)(max*100);

            LEDA((index));


result[i]=(3.6*3.6);这个等式这样没有问题,但是这样写result[i]=(temp*3.6);结果就是错误,一直是4左右,可能是哪方面的问题
把temp定义成float是错误,定义成int是正确的,不知道为啥

相关帖子

沙发
迪卡| | 2017-2-26 17:50 | 只看该作者
几个类型统一成float看看,你这样描述了一半的感觉,还有你说的对不对是最后的结果,还是那个等式的结果

使用特权

评论回复
板凳
米尔豪斯| | 2017-2-26 18:00 | 只看该作者
是不是溢出了,或者是没转换数据类型就直接赋值/运算了?

使用特权

评论回复
地板
lefeng| | 2017-2-26 18:11 | 只看该作者
积分怎么获得呀

使用特权

评论回复
5
plsbackup| | 2017-2-26 22:35 | 只看该作者
变量有问题。

使用特权

评论回复
6
plsbackup| | 2017-2-26 22:37 | 只看该作者
使用强制转换转换变量。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

109

主题

638

帖子

0

粉丝