如何在C ++中将CString
转换为double
?
Unicode支持也不错。
谢谢!
答案 0 :(得分:27)
CString
可以转换为LPCTSTR
,基本上是const char*
(Unicode版本中的const wchar_t*
)。
了解这一点,您可以使用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
的宏
答案 1 :(得分:5)
您可以使用std::stringstream
将任何内容转换为任何内容。唯一的要求是实施运营商>>
和<<
。可以在<sstream>
头文件中找到Stringstream。
std::stringstream converter;
converter << myString;
converter >> myDouble;
答案 2 :(得分:4)
使用boost lexical_cast库,你可以
#include <boost/lexical_cast.hpp>
using namespace boost;
...
double d = lexical_cast<double>(thestring);
答案 3 :(得分:1)