我用FC=(b2*16*16+b3*16+b4)/1000;输出FC的值为乱码,(其中b2、b3、b4都为整型小于10的数)我将此式改为:FC=(b2*16*16+b3*16+b4)/10;
          FC=FC /10;
          FC=FC/10;
输出就能正常,后来我在以下代码中发现也是乱码:1)int m_Weight=170;
   double WidealMale=77.4;
   VE=m_Weight/WidealMale; 输出VE乱码
2) int W=60;
   double H=0.425;
   IS=pow(W,H); 即60的0.425次方也出现乱码
不知为什么,是否是溢出,该怎么处理,请各位高手指点一二,谢谢!用的是MFC

解决方案 »

  1.   

    怎么输出的?FC  VE 是什么类型? 要注意的是:整型除整型 计算结果是个整型。
      

  2.   

    double VE;
    int m_Weight=170;
    double WidealMale=77.4;
    VE=m_Weight/WidealMale;
    cout<<VE<<endl;
    double IS;
    int W=60;
    double H=0.425;
    IS=pow(W,H);
    cout<<IS;
    输出没问题啊··LZ你是怎么输出的··以及类型定义??
      

  3.   

    我输出用以下代码
    CString string;
    string.Format(_T("%.3f"),VE);
    dc,TextOut(50,50,string)
    如果代码有问题,那
    FC=(b2*16*16+b3*16+b4)/10;
    FC=FC /10;
    FC=FC/10;
    也不应该有正确的输出,除以1000不能正常输出,而改为除以10再除以10再除以10就正常,FC为double
    代码在MainFrm.cpp中,谢谢各位指教
      

  4.   

    wwwxhb:你试的这部份是没有乱码,只要将
    double FC=(b2*16*16+b3*16+b4)/10;
    FC=FC /10;
    FC=FC/10;
    更改为double FC=(b2*16*16+b3*16+b4)/1000;就是乱码了