数据转换

MFC 常见数据类型转换
转自http://blog.chinaunix.net/space.php?uid=21411227&do=blog&id=1826622


 1.CTime--〉CString
 CTime t;
 t=CTime::GetCurrentTime();
 CString sur;
 sur.Format("%s",t.Format("%Y-%m-%d"));
 MessageBox(sur);

2.long --> CString
long a ;
CString b;
b.format("%ld",a);

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


5.2 char* 与CString
1)char*->CString

char sz[128];
CString str;
str.Format("%s",sz);
2) CString -> char*
CString str;
int nLength = str.GetLength();
char* sz = new char[nLength];
sz = str.GetBuffer(0);


5.3 float<->CString 

1)float->CString
float f = 0.0;
CString str;
str.Format("%f",f);
2) CString->float
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",这是错误的!


char和byte的转换
转自:http://blog.163.com/spring_gwn/blog/static/866940020103304420796/

//char转化为byte
    public static byte[] charToByte(char c) {
        byte[] b = new byte[2];
        b[0] = (byte) ((c & 0xFF00) >> 8);
        b[1] = (byte) (c & 0xFF);
        return b;
    }

//byte转换为char

    public static char byteToChar(byte[] b) {
        char c = (char) (((b[0] & 0xFF) << 8) | (b[1] & 0xFF));
        return c;
    }








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值