如何将cstring 转换成int型

时间:2020-12-20 16:06:56
我有几个变量是cstring型的我想把它变成int型进行换算
不知谁有办法啊

14 个解决方案

#1


CString str("1234");
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 );

#3


_ttoi 和_atoi 都可;

具体你自己可查看MSDN

#4


::atoi((LPCTSTR)str);

#5


up:)

#6


用int i= _ttoi(str);后怎么小数点后的数据都没了。可以将int又转回csring吗?

#7


既然要转换为整形,那又怎么可能有小数点后面的数呢?
用_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小数点后的数没了
怎样才能的到正确的结果呢?

#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

#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 都可以用的代码

#2


CString cs;
char szBuf[128];
int iVar;
strcpy( szBuf, cs.GetBuffer( cs.GetLength( ) ) );
cs.ReleaseBuffer( );
iVar = atoi( szBuf );

#3


_ttoi 和_atoi 都可;

具体你自己可查看MSDN

#4


::atoi((LPCTSTR)str);

#5


up:)

#6


用int i= _ttoi(str);后怎么小数点后的数据都没了。可以将int又转回csring吗?

#7


既然要转换为整形,那又怎么可能有小数点后面的数呢?
用_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小数点后的数没了
怎样才能的到正确的结果呢?

#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

#12


float i = (float)atof(m_sh)+(float)atoi(m_sz);

#13


ok,谢谢各位啦。问题解决了!!!!马上给分

#14


用atoi函数就可以了~~