2 tianxiezhi tianxiezhi 于 2016.03.06 22:39 提问

VC++获取编辑框数据求和后只显示整数不显示小数是什么原因呢?代码如下

请教下大家:
我用如下代码获取编辑框输入数据进行求和后只显示整数不显示小数有办法没呢?
int Si, Al, Sum;
char char1[10], char2[10];
GetDlgItem(IDC_EDIT_Si)->GetWindowText(char1, 10);//编辑框1数据
GetDlgItem(IDC_EDIT_Al)->GetWindowText(char2, 10);//编辑框2数据

Si = atoi(char1);
Al = atoi(char2);
Sum = Si + Al;//两个编辑框求和
 SetDlgItemInt(IDC_EDIT_HEJI, Sum);//显示求和数据

8个回答

devmiao
devmiao   Ds   Rxr 2016.03.06 22:56

用ftoa,再setwindowstext

devmiao
devmiao   Ds   Rxr 2016.03.06 22:57

用ftoa,再setwindowstext

caozhy
caozhy   Ds   Rxr 2016.03.06 22:46

atoi是转换整数
用atof

lx624909677
lx624909677   Ds   Rxr 2016.03.07 16:09

先单步看下char1中的内容,这个里面的内容应该是和你的文本框中的内容一样的(如果文本框内容没有过长的话),然后转换atoi是把字符串转换成int类型,所以小数点后面没有了,要用atof

tianxiezhi
tianxiezhi   2016.03.07 08:41

谢谢大家的指教,是不是C++中没有ftoa函数呢?又当如何进行,初学习,向大家请教!
int Si, Al, Sum;
char char1[10], char2[10], charAA[10];
GetDlgItem(IDC_EDIT_Si)->GetWindowText(char1, 10);//编辑框1数据
GetDlgItem(IDC_EDIT_Al)->GetWindowText(char2, 10);//编辑框2数据

Si = atof(char1);
Al = atof(char2);
Sum = Si + Al;//两个编辑框求和
ftoa(Sum, charAA, 10);//ftoa  提示找不到标识符
GetDlgItem(IDC_EDIT_HEJI)->SetWindowText(charAA);
tianxiezhi
tianxiezhi   2016.03.07 11:43

谢谢大家的指教,是不是C++中没有ftoa函数呢?又当如何进行,初学习,向大家请教!
int Si, Al, Sum;
char char1[10], char2[10], charAA[10];
GetDlgItem(IDC_EDIT_Si)->GetWindowText(char1, 10);//编辑框1数据
GetDlgItem(IDC_EDIT_Al)->GetWindowText(char2, 10);//编辑框2数据
Si = atof(char1);
Al = atof(char2);
Sum = Si + Al;//两个编辑框求和
ftoa(Sum, charAA, 10);//ftoa 提示找不到标识符
GetDlgItem(IDC_EDIT_HEJI)->SetWindowText(charAA);

lx624909677
lx624909677 char buf[10] = "-123.456"; float f = atof(buf);
接近 2 年之前 回复
tianxiezhi
tianxiezhi   2016.03.07 20:51

谢谢大家的指教,问题已解决。直接将Sum定义为双精度,采用sprintf_s函数显示小数位数,在vs2015中已编译通过,谢谢!

WinsenJiansbomber
WinsenJiansbomber   2016.03.06 22:54

不仅atoi是转换整数的,SetDlgItemInt也是处理整数的,整个过程没有那一点用到小点

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!