阅贴的朋友你们好:
问一个基础的问题,就是,我在E1和E2这两个编辑框输入1个浮点数,然后相减,为什么我再E3得到的10进制数据不正确呢
请问错在哪了,麻烦会的指点下:
void CZzDlg::OnButton1() 
{
 // TODO: Add your control notification handler code here

UpdateData(TRUE);
float aa,bb,cc;
  
m_e1=aa;
m_e3=bb;
m_e3=cc;
cc=aa-bb;
m_e3.Format("%f",cc);
SetDlgItemText(IDC_EDIT1,m_e3);
}

解决方案 »

  1.   

    m_e1=aa;
    m_e3=bb;
    m_e3=cc;貌似方向反了
      

  2.   

    float aa,bb,cc;
       
    m_e1=aa;
    m_e3=bb;
    m_e3=cc;

    cc=aa-bb; 
    m_e3.Format("%f",cc);
    SetDlgItemText(IDC_EDIT1,m_e3);你的m_e3是个CString类型的?
    怎么能直接将一个float类型的数赋值给它呢?编译能通过吗?
      

  3.   

    float aa,bb,cc;
       
    m_e1=aa;
    m_e3=bb;
    m_e3=cc;
    cc=aa-bb; 
    m_e3.Format("%f",cc);
    你这里有问题啊,你的m_e1,m_e2,m_e3是CString类型的吧,
    m_e1 = aa; m_e3 = bb;这些操作能通的过编译???
      

  4.   


    给你的三个Edit都关联上float类型的变量(用Classwizard->Member Variables):
    float m_fEdit1;
    float m_fEdit2;
    float m_fEdit3;然后
    void CZzDlg::OnButton1()  
    {
     // TODO: Add your control notification handler code hereUpdateData(TRUE);
    m_fEdit3 = m_fEdit1 - m_fEdit2;
    UpdateData(FALSE);}
      

  5.   


    m_e1=aa;
    m_e3=bb;
    m_e3=cc;
    cc=aa-bb; 
    m_e3.Format("%f",cc);
    大哥,看你的代码,m_e3=bb;
    m_e3=cc;这样的结果,m_e3 的值 是 cc 而不是 bb,那你 m_e3=bb;这句有什么用呢?只为加重编译器的工作量?囧
     
      

  6.   

    开始发错了,应该是m_e2=bb;
    如果三个Edit必须都是CString型,那该怎么实现字符串十进制相减呢?