请注意以下代码:
double rate=GetDlgItemInt(IDC_EDIT1,0,TRUE);
double term=GetDlgItemInt(IDC_EDIT2,0,TRUE);
double amount=GetDlgItemInt(IDC_EDIT3,0,TRUE);
double final;
CString Content(_T("Thanks for using the calculator"));
if (CTaskDialog::IsSupported())
{
CString Heading(_T("Successfully calculated"));
CString Title(_T("Interest Calculator"));
CString Collapsed(_T("Collapsed Info"));
CString Expanded(_T("Expanded Info"));
CString Information(_T("Your information you want to calculate"));
CTaskDialog dia(Content,Heading,Title,TDCBF_OK_BUTTON);
final=amount*pow((1+rate),term);
SetDlgItemInt(IDC_EDIT4,final,FALSE);
dia.SetMainIcon(TD_ERROR_ICON);
dia.DoModal();
}
}
我试图做的是为计算器创建一个GUI,用于计算基金的未来价值。我希望所有变量都是双倍的。但代码“GetDlgItemInt”的一部分显然是针对整数的,我不知道如何改变它以获得双倍。请帮我解决一下这个。提前谢谢。
答案 0 :(得分:1)
返回double
的等效函数可以是:
double GetDlgItemDouble(HWND hWnd, UINT uId)
{
TCHAR tchBuf[80];
GetDlgItemText(hWnd, uId, tchBuf, 80);
return _ttof(tchBuf);
}
如果字符串包含非数字字符等,您可能需要添加错误检查。
答案 1 :(得分:0)
将这些值存储为CTaskDialog成员是不是更好?
(抱歉忘了G(S)etDlgItem做了什么)
你可以做到
float myFloat = 3.2;
CString text;
text.Format( L"%f", myFloat );
SetDlgItemText( yourID, text );