一个小问题,请大家帮忙看看

bao_bao_bao_bao 2009-06-20 02:46:27
int nNum1 = GetDlgItemInt(hDlg,IDC_EDIT1,NULL,true);
int nNum2 = GetDlgItemInt(hDlg,IDC_EDIT2,NULL,true);
int nResults = 0;
int nID = LOWORD(wParam);
switch (nID)
{
case IDCANCEL:
{
EndDialog(hDlg, LOWORD(wParam));
}
break;
case IDC_jiafa:
{
nResults = nNum1 + nNum2;
SetDlgItemInt(hDlg,IDC_EDIT3,nResults,true);
}
break;
case IDC_jianfa:
{
nResults = nNum1 - nNum2;
SetDlgItemInt(hDlg,IDC_EDIT3,nResults,true);
}
break;
case IDC_chengfa:
{
nResults = nNum1 * nNum2;
SetDlgItemInt(hDlg,IDC_EDIT3,nResults,true);
}
break;
case IDC_chufa:
{
nResults = nNum1 / nNum2;
SetDlgItemInt(hDlg,IDC_EDIT3,nResults,true);
}
break;我是这样写的,可是我想求除数时能算出小数点部分,应该怎么做呢
...全文
54 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianyun123 2009-06-21
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 sui_yuan_zhe 的回复:]
对了 并且要把nResults也要定义为float
[/Quote]
这是关键
超gogo 2009-06-20
  • 打赏
  • 举报
回复
上面写错了 是UpdateData()函数 给你改了一个 你试试
case IDC_jiafa:
{
nResults = nNum1 + nNum2;
UpdateData(FALSE);
}
break;
超gogo 2009-06-20
  • 打赏
  • 举报
回复
或者用CString型的变量 用GetDlgItemText()来获得值 SetDlgItemText()来改变EDIT框的值
超gogo 2009-06-20
  • 打赏
  • 举报
回复
你用的是SetDlgItemInt 肯定传的是整数了

我看你应该是做的计算器的功能 你可以给IDC_EDIT1关联一个double的变量
然后使用UPDATE()功能来更新 EDIT框的值就可以了
sui_yuan_zhe 2009-06-20
  • 打赏
  • 举报
回复
对了 并且要把nResults也要定义为float
sui_yuan_zhe 2009-06-20
  • 打赏
  • 举报
回复
nNum1 / nNum2

改为

1.0*nNum1 / nNum2

就可以了
  • 打赏
  • 举报
回复
把int全改为double
bao_bao_bao_bao 2009-06-20
  • 打赏
  • 举报
回复
我试了这样改啊 可是值还是原先的没变啊 能否详细的说下怎么改吗 我是菜鸟啊 多提点下啦
findcsdn 2009-06-20
  • 打赏
  • 举报
回复
哪不行啊,也不说, 改double吧.
bao_bao_bao_bao 2009-06-20
  • 打赏
  • 举报
回复
不行啊
DirectX2009 2009-06-20
  • 打赏
  • 举报
回复
......晕了··· 你用 float 定义下 不要用 int ```
「已注销」 2009-06-20
  • 打赏
  • 举报
回复
int nResults = 0;
改成:
float nResults = 0;

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧