非淡泊无以明志,非宁静无以致远
全部博文(408)
分类:
2009-09-01 22:15:32
3.double --->CString
double a;
CString b;
b.format("%f",a);
4.CString--〉CTime
CString sur;
sur="2006-08-09";
COleDateTime time1;
time1.ParseDateTime(sur);
SYSTEMTIME systime;
VariantTimeToSystemTime(time1, &systime);
CTime tm(systime);
m_time=tm;
UpdateData(false);
5.CString和int,float之间的转换。
5.1 int <->CString
1) int ->CString
int n = 1;
CString str;
str.Format("%d",n);
2) CString->int
CString str = "1";
int n = atoi(str.GetBuffer(0));
1)char*->CString
char sz[128];
CString str;
str.Format("%s",sz);
CString str;
int nLength = str.GetLength();
char* sz = new char[nLength];
sz = str.GetBuffer(0);
float f = 0.0;
CString str;
str.Format("%f",f);
CString str = "0.0";
float f = atof(str.GetBuffer(0));
Format函数第一个参数是要转的那个数的类型
我现在的程序是
int a = 21;
double b = 3.45;
CString str;
str.Format("%03d%02.4f" , a , b);
现在得到的结果是"0213.4500"
%02.4f对b的整数部分不起作用
我想要得到一个形如aaabb.bbbb的字符串("02103.4500"),如果a不足3位,用0补齐,如果b的整数和小数不足2位和4位也要用0补齐
CString::Format("%d",xx);其中xx不能为双精度,不然会转化错误,应该使用CString::Format("%d",(LONG)xx);
例:
DOUBLE d = 22.443;
CString str;
str.Format("%d", d);转化后的str = "1924145349",这是错误的!