在MFC程序开发过程中经常会遇见需要string与数值的互转操作,因此在此备忘一下常用的转换方法:
1.数值转CString:使用Format函数。
double:(float 替换%lf为%f)
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("%.4lf"),num);
//str=" 1.4600"(前面有1个空格)
str.Format(_T("%7.4lf"),num);
int:(long int 替换%d为%ld)
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);
2.数值转换为CString:
可以使用atof()、_wtof()与_ttof()等函数或宏,但由于_ttof()宏可以自动适应输入字符串类型,所以建议使用_ttof函数进行转换。
转换代码如下:
double num=_ttof(CString);
参考:https://blog.csdn.net/sikong00/article/details/53726702