将CString转换为mfc中的float

时间:2011-04-26 10:06:13

标签: c++ visual-c++ mfc

如何将CString变量转换为浮点数? (我正在使用visuall c ++ 6.0和MFC)

我正在尝试使用编辑框返回一个值,我将其放入一个浮点数组中。我正在使用GetWindowText方法获取值,该值返回CString。所以我需要转换为浮点数。 (或者我只是完全以错误的方式做事?)。

我认为在MFC中已经存在执行此操作的方法。(已经使用Format方法传送到CString,在编辑框中显示数组中的值)

感谢。

1 个答案:

答案 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();