C ++에서 CSTRING을 더블로 변환하려면 어떻게합니까?
-
06-09-2019 - |
문제
어떻게 변환합니까? CString
a double
C ++에서?
유니 코드 지원도 좋을 것입니다.
감사!
해결책
ㅏ CString
An으로 변환 할 수 있습니다 LPCTSTR
, 기본적으로 a const char*
(const wchar_t*
유니 코드 빌드에서).
이것을 알면 사용할 수 있습니다 atof()
:
CString thestring("13.37");
double d = atof(thestring).
... 또는 유니 코드 빌드의 경우, _wtof()
:
CString thestring(L"13.37");
double d = _wtof(thestring).
... 또는 유니 코드 및 비 유니 코드 빌드를 모두 지원하려면 ...
CString thestring(_T("13.37"));
double d = _tstof(thestring).
(_tstof()
어느 쪽이든 확장되는 매크로입니다 atof()
또는 _wtof()
여부에 따라 _UNICODE
정의 됨)
다른 팁
당신은 변환 할 수 있습니다 무엇이든 사용 a std::stringstream
. 유일한 요구 사항은 운영자입니다 >>
그리고 <<
구현됩니다. StringStreams는에서 찾을 수 있습니다 <sstream>
헤더 파일.
std::stringstream converter;
converter << myString;
converter >> myDouble;
부스트 Lexical_cast 라이브러리를 사용하면됩니다
#include <boost/lexical_cast.hpp>
using namespace boost;
...
double d = lexical_cast<double>(thestring);
제휴하지 않습니다 StackOverflow