我使用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
。
答案 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);
你错过了支架。