不知谁有办法啊
14 个解决方案
#1
CString str("1234");
int i= _ttoi(str);
在ANSI 和 UNICODE 都可以用的代码
int i= _ttoi(str);
在ANSI 和 UNICODE 都可以用的代码
#2
CString cs;
char szBuf[128];
int iVar;
strcpy( szBuf, cs.GetBuffer( cs.GetLength( ) ) );
cs.ReleaseBuffer( );
iVar = atoi( szBuf );
char szBuf[128];
int iVar;
strcpy( szBuf, cs.GetBuffer( cs.GetLength( ) ) );
cs.ReleaseBuffer( );
iVar = atoi( szBuf );
#3
_ttoi 和_atoi 都可;
具体你自己可查看MSDN
具体你自己可查看MSDN
#4
::atoi((LPCTSTR)str);
#5
up:)
#6
用int i= _ttoi(str);后怎么小数点后的数据都没了。可以将int又转回csring吗?
#7
既然要转换为整形,那又怎么可能有小数点后面的数呢?
用_ttoi之后,再用itoa就可以转换为字符型,再用操作符LPCTSTR进行强制类型转换就可以了,不过小数点后面的数就没了。
如果要保留,就用atof,可以保留,不过是转换为float。
用_ttoi之后,再用itoa就可以转换为字符型,再用操作符LPCTSTR进行强制类型转换就可以了,不过小数点后面的数就没了。
如果要保留,就用atof,可以保留,不过是转换为float。
#8
int本来就不是小数嘛,用float吧,atof
#9
up
#10
是这样的我有两个变量
cstring m_sh="123.123",m_sz="12.12";
float i=atof(m_sh)+atoi(m_sz);结果是135e+006而不是135.243
int i=atoi(m_sh)+atoi(m_sz);结果是135小数点后的数没了
怎样才能的到正确的结果呢?
cstring m_sh="123.123",m_sz="12.12";
float i=atof(m_sh)+atoi(m_sz);结果是135e+006而不是135.243
int i=atoi(m_sh)+atoi(m_sz);结果是135小数点后的数没了
怎样才能的到正确的结果呢?
#11
CString m_sh="123.123",m_sz="12.12";
double j=atof(m_sh)+atof(m_sz);//结果是135e+006而不是135.243
CString m_str;
m_str.Format("%.3f",j);
AfxMessageBox(m_str)
结果是135.243
编译环境:Vc6+win2K
double j=atof(m_sh)+atof(m_sz);//结果是135e+006而不是135.243
CString m_str;
m_str.Format("%.3f",j);
AfxMessageBox(m_str)
结果是135.243
编译环境:Vc6+win2K
#12
float i = (float)atof(m_sh)+(float)atoi(m_sz);
#13
ok,谢谢各位啦。问题解决了!!!!马上给分
#14
用atoi函数就可以了~~
#1
CString str("1234");
int i= _ttoi(str);
在ANSI 和 UNICODE 都可以用的代码
int i= _ttoi(str);
在ANSI 和 UNICODE 都可以用的代码
#2
CString cs;
char szBuf[128];
int iVar;
strcpy( szBuf, cs.GetBuffer( cs.GetLength( ) ) );
cs.ReleaseBuffer( );
iVar = atoi( szBuf );
char szBuf[128];
int iVar;
strcpy( szBuf, cs.GetBuffer( cs.GetLength( ) ) );
cs.ReleaseBuffer( );
iVar = atoi( szBuf );
#3
_ttoi 和_atoi 都可;
具体你自己可查看MSDN
具体你自己可查看MSDN
#4
::atoi((LPCTSTR)str);
#5
up:)
#6
用int i= _ttoi(str);后怎么小数点后的数据都没了。可以将int又转回csring吗?
#7
既然要转换为整形,那又怎么可能有小数点后面的数呢?
用_ttoi之后,再用itoa就可以转换为字符型,再用操作符LPCTSTR进行强制类型转换就可以了,不过小数点后面的数就没了。
如果要保留,就用atof,可以保留,不过是转换为float。
用_ttoi之后,再用itoa就可以转换为字符型,再用操作符LPCTSTR进行强制类型转换就可以了,不过小数点后面的数就没了。
如果要保留,就用atof,可以保留,不过是转换为float。
#8
int本来就不是小数嘛,用float吧,atof
#9
up
#10
是这样的我有两个变量
cstring m_sh="123.123",m_sz="12.12";
float i=atof(m_sh)+atoi(m_sz);结果是135e+006而不是135.243
int i=atoi(m_sh)+atoi(m_sz);结果是135小数点后的数没了
怎样才能的到正确的结果呢?
cstring m_sh="123.123",m_sz="12.12";
float i=atof(m_sh)+atoi(m_sz);结果是135e+006而不是135.243
int i=atoi(m_sh)+atoi(m_sz);结果是135小数点后的数没了
怎样才能的到正确的结果呢?
#11
CString m_sh="123.123",m_sz="12.12";
double j=atof(m_sh)+atof(m_sz);//结果是135e+006而不是135.243
CString m_str;
m_str.Format("%.3f",j);
AfxMessageBox(m_str)
结果是135.243
编译环境:Vc6+win2K
double j=atof(m_sh)+atof(m_sz);//结果是135e+006而不是135.243
CString m_str;
m_str.Format("%.3f",j);
AfxMessageBox(m_str)
结果是135.243
编译环境:Vc6+win2K
#12
float i = (float)atof(m_sh)+(float)atoi(m_sz);
#13
ok,谢谢各位啦。问题解决了!!!!马上给分
#14
用atoi函数就可以了~~