2015-06-09 5 views
1

Я работаю над созданием проекта C++ MFC в настройках юникода, и я обычно использую функцию _ ttof для преобразования CString в double, но я не мог найти функции для long double, которые используют TCHAR.Преобразование long double в CString

Заранее спасибо.

+0

Если вы используете MSVC, 'long double' точно так же, как' double' –

ответ

4

Используйте Format метод CString класса:

CString sNum; 
long double fNum = 10.0; 
sNum.Format(_T("%f"), fNum); 
2

Скорее всего вы обнаружите, что для целей, относящихся к классам Microsoft Foundation, long double и double имеют одинаковый размер.

Таким образом, вы можете создать свою собственную функцию заглушки, (который вызывает _ttof) со статическим утверждением sizeof(double) == sizeof(long double) просто чтобы быть на безопасной стороне:

static_assert(sizeof(double) == sizeof(long double), "double and long double are not the same size");