5
如何将CString变量转换为浮点数?我试图使用编辑框来返回一个值,我把它放入浮点数组。我使用GetWindowText方法获取返回CString的值。所以我需要转换为浮点。 (或者我只是完全错误地做事情?)。将CString转换为mfc中的浮点数
我假定存在用于在MFC已经这样做的方法。(已经使用了格式方法convet到一个CString在编辑框中的阵列中显示的值)
感谢。
如何将CString变量转换为浮点数?我试图使用编辑框来返回一个值,我把它放入浮点数组。我使用GetWindowText方法获取返回CString的值。所以我需要转换为浮点。 (或者我只是完全错误地做事情?)。将CString转换为mfc中的浮点数
我假定存在用于在MFC已经这样做的方法。(已经使用了格式方法convet到一个CString在编辑框中的阵列中显示的值)
感谢。
你可以做
CString pi = "3.14";
return atof(pi);
编辑
还可以使用此功能:
CString pi = "3.14";
return _ttof(pi);
读一个字符串值和解析/将其转换为浮动可以让你找到有一个时出错。所有你需要的是C运行时函数的帮助:strtod()或atof()。
我宁愿strtod转换为第二个参数返回一个字符串指针,其中解析终止:
CString str;
m_edtMyEditBox.GetWindowText(str);
char *pEnd;
double dValue = strtod(str.GetBuffer(str.GetLength()), &pEnd);
if (*pEnd != '\0')
{
// Error in parsing
}
str.ReleaseBuffer();
我觉得应该是'CString的PI = _T(“3.14”);'如果他要使用_ttof() – MikMik 2011-04-26 10:56:19
@MikMik:如果应用程序支持unicode字符,那么你应该使用_T()宏,否则不需要该宏。 – karthik 2011-04-26 11:42:10
首先,这是2011年。应用程序应该支持Unicode。其次,如果应用程序支持Unicode,则应使用L“String”和_wtof。如果没有,“弦乐”和atof。 _T(“String”)和_ttof是根据项目设置映射到正确版本的通用版本。但是混合“String”和_ttof是将ANSI文字与一个泛型函数混合在一起,这个泛型函数意外地在非unicode版本中工作,但是是错误的。 – MikMik 2011-04-28 06:09:17