方法1:
float b;
CString c=_T("1.0");
//c.Format(_T("%.3lf"),a);
USES_CONVERSION;
b = (float) atof(T2A(c));
方法2:
USES_CONVERSION;
m_fDPHD= (float) atof(T2A((LPTSTR)(LPCTSTR)m_strDPHD));
方法3:
//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;
}
方法4+5:
CString strFloat;
float flt;
//method4:
flt = (float)atof((char *)(LPTSTR)(LPCTSTR)mstrFloat);
//method5:
flt = (float)atof((char *)m_eps.GetBuffer(strFloat.GetLength()));
strFloat.ReleaseBuffer();