CString转换为double【创+转】

CString转换为double:

CString strFloat;
float flt;或double fit

不过前面两种方法在VS2005下运行结果不正确,在VC6.0开发环境下是可以的。

【说明:网上很多说的都是前两种方法,结果double值只是字符串的第一个数字。】

 

//方法一

flt = (float)atof((char *)(LPTSTR)(LPCTSTR)mstrFloat);

或flt = (float)atof((LPSTR)mstrFloat);

 

//方法二
flt = (float)atof((char *)m_eps.GetBuffer(strFloat.GetLength()));
strFloat.ReleaseBuffer();

 

//方法三
//Convert CString to double
static BOOL _AtlSimpleFloatParse(LPCTSTR lpszText, double& d)  
{  
    ATLASSERT(lpszText != NULL);  
    while (*lpszText == ' '|| *lpszText == '/t')
    {
        lpszText++;  
    }

    TCHAR chFirst = lpszText[0];  
    d = _tcstod(lpszText,(LPTSTR*)&lpszText);  
    if (d == 0.0 && chFirst != '0')
    {
        return FALSE;    //could not convert  
    }
    while (*lpszText == ' '|| *lpszText == '/t')
    {
        lpszText++;  
    }

    if (*lpszText != '/0')
    {
        return FALSE;    //not terminated properly  
    }

    return TRUE;  
}

 

另外,也可以这样:

const char* a;

a="123.5";

double b=atof(a);

//b==123.500000000000000

 

 

double转换为CString:

例子:CString a;

double b=123.5;

a.Format("%f",b);//int用%d,DWORD用%u,double,float用%f

//a=="123.5"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值