¿Cómo se convierte un objeto CString a un doble en C ++?
-
06-09-2019 - |
Pregunta
¿Cómo convierto un CString
a un double
en C ++?
El soporte Unicode sería bueno también.
Gracias!
Solución
A CString
puede convertir a un LPCTSTR
, que es básicamente una const char*
(const wchar_t*
en Unicode construye).
Sabiendo esto, puede utilizar atof()
:
CString thestring("13.37");
double d = atof(thestring).
... o para Unicode construye, _wtof()
:
CString thestring(L"13.37");
double d = _wtof(thestring).
... o para apoyar tanto Unicode y no Unicode construye ...
CString thestring(_T("13.37"));
double d = _tstof(thestring).
(_tstof()
es una macro que se expande a cualquiera atof()
o _wtof()
en función de si o no se define _UNICODE
)
Otros consejos
Puede convertir cualquier cosa a cualquier cosa utilizando un std::stringstream
. El único requisito es que el >>
operadores y <<
ser implementadas. Stringstreams se pueden encontrar en el archivo de cabecera <sstream>
.
std::stringstream converter;
converter << myString;
converter >> myDouble;
con el impulso lexical_cast biblioteca, lo hace
#include <boost/lexical_cast.hpp>
using namespace boost;
...
double d = lexical_cast<double>(thestring);