首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VC >

关于字符转化有关问题

2012-12-15 
关于字符转化问题求教:做了个计算器程序,想把文本框的控件变量m_value1(CString型)转化为float型,结果运行

关于字符转化问题
求教:做了个计算器程序,想把文本框的控件变量m_value1(CString型)转化为float型,结果运行出来的结果出错,输入12+3,输出4.0000;输入22/2,输出1.0000,也就是说,输入的两位数变成了个位数,请问怎么解决啊?
部分代码如下:
void CCounterDlg::OnPlus()
{
char *p = (LPSTR)(LPCTSTR)m_value1;//这是从网上找的转化方法
a=(float)atol(p);//a是自己设的float变量
this->m_value1="";
UpdateData(false);
act=1;
}
void CCounterDlg::OnEqual()
{
char *p = (LPSTR)(LPCTSTR)m_value1;
float b=(float)atol(p);
float c;
switch(act)
{
case 0:
c=a;break;
case 1:
c=a+b;break;
case 2:
c=a-b;break;
case 3:
c=a*b;break;
case 4:
c=a/b;
}
m_value1.Format(_T("%f"),c);
UpdateData(false);
}
[最优解释]
a=(float)(_wtof(m_value1));
[其他解释]
a=(float)atol(p);//a是自己设的float变量
改成a=atof(p);试试看,我没验证过的

[其他解释]
要学会调试
6个字符串长度

热点排行