MFC做单片机串口通信怎么用Cstring型显示float数据

MFC做单片机串口通信如何用Cstring型显示float数据
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[512]; //设置BYTE数组
CString strtemp;
CString str1=_T("1");
CString str2=_T("2");
CString str3=_T("3");
   if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
variant_inp=m_ctrlComm.GetInput(); //读缓冲区
safearray_inp=variant_inp;  //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k<len;k++)             //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k);    //字符型
strtemp.Format("%02X ",bt);    //将字符送入临时变量strtemp存放 m_receive+=strtemp;  //加入接收编辑框对应字符串  
if(strtemp>="40")
DrawA(IDC_STATIC_TEMP,0x00000FF0);
}
         }
        else
   m_receive="数据未收到 "; 
    UpdateData(FALSE);  //更新编辑框内容
}
如何将strtemp转换为float型
------解决方案--------------------
float fD;
CString str;
str="10.5";
sscanf(str, "%f", &fd);
------解决方案--------------------
double fData = atof(strtemp);
------解决方案--------------------
我建议你用CnComm通信类,别自己写,浪费时间;
读出来的BYTE数组,自己转换成CString
------解决方案--------------------
float型数据转成CString:

CString m_end;
CString m_temp;
//m_end="0.968";
//m_temp"11.252";
m_end.Format("%f",0.968);   //Format 方法操作CString ~
m_temp.Format("%f", 11.252); 

以前有人问过,直接复制过来,希望有帮助