如何将结果从Int更改为Float数据类型?

时间:2014-09-07 11:39:19

标签: c++ visual-studio-2010 mfc

我使用MFC应用程序在VS 2010中制作电费计算器应用程序。

该程序正常运行,但我无法将结果打印出来。

这是我的计算代码:

void CLAB10Dlg::OnBnClickedTotal()
{


float num1; 
    float result;
    num1 = GetDlgItemInt(IDC_NUM1);

CButton* domesticButton = (CButton*)GetDlgItem(IDC_DOMESTIC);
CButton* industrialButton = (CButton*)GetDlgItem(IDC_INDUSTRIAL);
CButton* commercialButton = (CButton*)GetDlgItem(IDC_COMMERCIAL);

if(domesticButton -> GetCheck())
{
    result = 31.66 * num1;
SetDlgItemInt(IDC_RESULT,result);
}
else if(industrialButton -> GetCheck())
{
    result = 36.15 * num1;
SetDlgItemInt(IDC_RESULT,result);
}
else if(commercialButton -> GetCheck())
{
    result = 47.92 * num1;
SetDlgItemInt(IDC_RESULT, result);
}

}

例如,我的num1 = 1。

结果= 31.66 * num1

result = 31

我应该在哪里更改,以便我可以在浮动中打印result

2 个答案:

答案 0 :(得分:2)

SetDlgItemInt将控制文本设置为无符号整数,从而将浮点值转换为无符号整数。

您应该使用SetDlgItemText来显示浮动值,例如

CString text; 
text.Format(_T("%f", result); // This will preserve your float format
SetDlgItemText(IDC_RESULT, text);

答案 1 :(得分:1)

CString text; 
text.Format(_T("%f"), result); // This will preserve your float format
SetDlgItemText(IDC_RESULT, text);

你错过了支架。