在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);