将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与double互相转化

1.double转化为CString http://www.sowsoy.com/topics-410.html C++中doulbe/float/int转为CString方法 在MF...

CString与double互相转化

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

MFC CString转int、double、TCHAR*类型

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

VC 中 Cstring 与 int、float、double、char、string数据类型的相互转换

1. Cstring 与char*的相互转换 Cstring转char Cstring cstr="Germany"; char *p = (LPSTR)(LPCTSTR)c...

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

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

CString与int、float之间的转换

CString to int: 如下:CString str = "123"; int i; i = atoi(str);CString to float: 如下:CString str="1.2...

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

CString str = CString("Almost mad!"); float tempFloat = 0.0; tempFloat = ato...

C语言atof()函数:将字符串转换为double(双精度浮点数)

头文件:#include 函数 atof() 用于将字符串转换为双精度浮点数(double),其原型为: double atof (const char* str); atof() 的...

c/c++数据类型转换1(float,char,string,CString )

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,199...

【VS2010】CString类型转换

一、CString 转换为const char * 转自:http://hi.baidu.com/lowen_pig/blog/item/8227b632cf441488a9018ef0.html ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:将CString转换为double(或float)的3种方法
举报原因:
原因补充:

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