Как преобразовать CString в double в C++?
Как преобразовать CString
до double
в C++?
поддержка Unicode также была бы хорошей.
спасибо!
4 ответов
A CString
можно использовать как LPCTSTR
, что в основном является const char*
(const wchar_t*
в сборках Unicode).
зная это, вы можете использовать atof()
:
CString thestring("13.37");
double d = atof(thestring).
...или для сборки Unicode,_wtof()
:
CString thestring(L"13.37");
double d = _wtof(thestring).
...или для поддержки Unicode и не-Unicode строит...
CString thestring(_T("13.37"));
double d = _tstof(thestring).
(_tstof()
макрос либо atof()
или _wtof()
в зависимости от того,_UNICODE
is определено)
вы можете конвертировать что-нибудь С помощью std::stringstream
. Единственное требование заключается в том, что операторы >>
и <<
быть реализованы. Stringstreams можно найти в <sstream>
заголовочный файл.
std::stringstream converter;
converter << myString;
converter >> myDouble;
с библиотекой Boost lexical_cast, вы делаете
#include <boost/lexical_cast.hpp>
using namespace boost;
...
double d = lexical_cast<double>(thestring);