版权声明:转载请附上源地址 https://blog.csdn.net/weixin_40026797/article/details/84206791
C++中doulbe/float/int转为CString的方法
在MFC程序中,可以使用Format方法方便的实现int、float和double等数字类型转换为CString字符串。以下是CString的Format支持的格式说明:
C++表达方式 | 数据类型 |
---|---|
%c | 单个字符 |
%d | 十进制整数(int) |
%ld | 十进制整数(long) |
%f | 十进制浮点数(float) |
%lf | 十进制浮点数(double) |
%o | 八进制数 |
%s | 字符串 |
%u | 无符号十进制数 |
%x | 十六进制数 |
(1)int转换为CString
CString str;
int number=15;
//str="15"
str.Format(_T("%d"),number);
//str=" 15"(前面有两个空格;4表示将占用4位,如果数字超过4位将输出所有数字,不会截断)
str.Format(_T("%4d"),number);
//str="0015"(.4表示将占用4位,如果数字超过4位将输出所有数字,不会截断)
str.Format(_T("%.4d"),number);
long转换为CString的方法与上面相似,只需要把%d改为%ld就可以了。
(2)double转换为CString
CString str;
double num=1.46;
//str="1.46"
str.Format(_T("%lf"),num);
//str="1.5"(.1表示小数点后留1位,小数点后超过1位则四舍五入)
str.Format(_T("%.1lf"),num);
//str="1.4600"
str.Format(_T("%.4f"),num);
//str=" 1.4600"(前面有1个空格)
str.Format(_T("%7.4f"),num);
float转换为CString的方法也同上面相似,将lf%改为f%就可以了。
(3)将十进制数转换为八进制
CString str;
int num=255;
//str="377"
str.Format(_T("%o"),num);
//str="00000377"
str.Format(_T("%.8o"),num);
C++中CString转为int、double的方法
(1)CString转化为int
CString str = "123";
int number = atoi(str);
//error C2664: “atoi”: 不能将参数 1 从“CString”转换为“const char *”
//解决:用_ttoi代替atoi 或 _wtoi(str);
//转为64位int类型的话可以使用_ttoi64()
(2)CString转化为double
CString str = "123.00";
double number = atof(str);
//error C2664: “atof”: 不能将参数 1 从“CString”转换为“const char *”
//解决:用_ttof代替atof 或 _wtof(str);
//转为64位double类型的话可以使用_ttof64()