将CString转换为double(或float)的3种方法

原创 2007年10月03日 02:19:00
CString strFloat;
float flt;

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

//method2:
flt = (float)atof((char *)m_eps.GetBuffer(strFloat.GetLength()));
strFloat.ReleaseBuffer();

//method3:
//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;  
}

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

CString与int、float之间的转换

CString to int: 如下:CString str = "123"; int i; i = atoi(str);CString to float: 如下:CString str="1.2...
  • lh1573378488
  • lh1573378488
  • 2016年10月09日 15:09
  • 2485

vc下cstring转换为float

 CString   str   =   CString("Almost   mad!");     float   tempFloat   =   0.0;   tempFloat   =   at...
  • onlyou930
  • onlyou930
  • 2010年01月05日 09:31
  • 4541

vc在unicode和非unicode情况下cstring转换为float

CString str = CString("Almost mad!"); float tempFloat = 0.0; tempFloat = ato...
  • chailyuan
  • chailyuan
  • 2016年11月28日 21:05
  • 1027

CString 到 float 的转换 小方法

CString 到 float 的转换 小方法 // 从字符串到浮点数的转换  float StringtoDouble( CString csValue )  {   // 第一种方法 ...
  • WJJ198809171660
  • WJJ198809171660
  • 2016年03月23日 11:46
  • 262

CString与double互相转化

1.double转化为CString http://www.sowsoy.com/topics-410.html C++中doulbe/float/int转为CString方法 在MF...
  • sikong00
  • sikong00
  • 2016年12月18日 13:01
  • 6670

C++之CString与double、int及float互相转化

在MFC程序中,可以使用Format方法方便的实现int、float和double等数字类型转换为CString字符串。以下是CString的Format支持的格式说明: %c 单个字符 %d 十...
  • u011028345
  • u011028345
  • 2017年08月19日 23:49
  • 1259

CString与double互相转化

1.double转化为CString http://www.sowsoy.com/topics-410.html C++中doulbe/float/int转为CString方法...
  • b5w2p0
  • b5w2p0
  • 2013年12月16日 16:48
  • 9194

MFC/C/C++ CString 转 int\double\long\long long

MFC CString转int、double、char类型//CString转int CString cstr_int = L"12345"; int result_int = _ttoi(c...
  • theusProme
  • theusProme
  • 2016年06月17日 09:05
  • 1474

MFC CString转int、double、TCHAR*类型

不能将参数 从“const char [5]”转换为“LPCTSTR” (unicode字符集)错误解决办法如下://CString转int CString szPort = L"2589"; i...
  • mrandexe
  • mrandexe
  • 2011年03月15日 22:41
  • 16715

CString转换成double变量

默认的ttof函数转double会将小数点后面的省略掉,解决办法可以通过下面的函数实现,中心思想是将CString转化为char*,然后使用atof函数实现转化. double MyTTOL...
  • yhd1019896930
  • yhd1019896930
  • 2017年11月17日 09:15
  • 68
收藏助手
不良信息举报
您举报文章:将CString转换为double(或float)的3种方法
举报原因:
原因补充:

(最多只允许输入30个字)