在mfc中将CString转换为float

Convert CString to float in mfc

本文关键字:float 转换 CString mfc 中将      更新时间:2023-10-16

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

我试图使用一个编辑框来返回一个值,我把它放入一个浮点数组。我使用GetWindowText方法来获取值,它返回一个CString。所以我需要把它转换成浮点数。(或者我只是用完全错误的方式做事?)。

我认为在MFC中已经有这样做的方法。(已经使用Format方法转换为CString,在编辑框中显示数组中的值)

谢谢。

你可以直接做

    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 != '')
{
    // Error in parsing
}
str.ReleaseBuffer();