您的位置:首页 > 其它

CString与double互相转化

2016-12-18 13:01 218 查看
1.double转化为CString


C++中doulbe/float/int转为CString方法

在MFC程序中,可以使用Format方法方便的实现int、float和double等数字类型转换为CString字符串。以下是CString的Format支持的格式说明:

       %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("%.
b292
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);

 

2.CString转化为double型

double=atof(CString);

error C2664: “atof”: 不能将参数 1 从“CString”转换为“const char *” 

解决:用_ttof代替atof 或 _wtof(str);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: