如何将CString变量转换为浮点数? (我正在使用visuall c ++ 6.0和MFC)
我正在尝试使用编辑框返回一个值,我将其放入一个浮点数组中。我正在使用GetWindowText方法获取值,该值返回CString。所以我需要转换为浮点数。 (或者我只是完全以错误的方式做事?)。
我认为在MFC中已经存在执行此操作的方法。(已经使用Format方法传送到CString,在编辑框中显示数组中的值)
感谢。
答案 0 :(得分:7)
你可以做到
CString pi = "3.14";
return atof(pi);
修改强>
也可以使用此功能:
CString pi = "3.14";
return _ttof(pi);
读取字符串值并将其解析/转换为float允许您在有错误时找到错误。您所需要的只是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();