Конвертировать CString для плавания в MFC - PullRequest
5 голосов
/ 26 апреля 2011

как я могу преобразовать переменную CString в число с плавающей запятой?(Я использую Visuall C ++ 6.0 и MFC)

Я пытаюсь использовать поле редактирования, чтобы вернуть значение, которое я помещаю в массив с плавающей точкой.Я использую метод GetWindowText, чтобы получить значение, которое возвращает CString.Поэтому мне нужно конвертировать в число с плавающей запятой.(или я просто делаю вещи совершенно неправильно?).

Я предполагаю, что есть способы сделать это уже в MFC. (уже использовали метод Format для преобразования в CString для отображения значений вмассив в поле редактирования)

Спасибо.

1 Ответ

7 голосов
/ 26 апреля 2011

вы можете просто сделать

    CString pi = "3.14";
    return atof(pi);

EDIT

Также используйте эту функцию:

    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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...