如何在C++中将CString转换为double?

Ste*_*man 12 c++ string double type-conversion visual-c++

如何在C++中将CStringa 转换为a double

Unicode支持也不错.

谢谢!

Sil*_*rom 27

A CString可以转换为a LPCTSTR,基本上是const char*(const wchar_t*在Unicode版本中).

知道了这一点,你可以使用atof():

CString thestring("13.37");
double d = atof(thestring).
Run Code Online (Sandbox Code Playgroud)

...或者用于Unicode构建,_wtof():

CString thestring(L"13.37");
double d = _wtof(thestring).
Run Code Online (Sandbox Code Playgroud)

...或支持Unicode和非Unicode构建......

CString thestring(_T("13.37"));
double d = _tstof(thestring).
Run Code Online (Sandbox Code Playgroud)

(_tstof()是一个扩展为atof()或者_wtof()基于是否_UNICODE定义的宏)

  • 此链接显示"wcstod",这是我用来支持unicode的.http://msdn.microsoft.com/en-us/library/kxsfc1ab(VS.80).aspx (2认同)

Mig*_*MoS 5

您可以将任何东西任何东西使用std::stringstream.唯一的要求是运营商>><<实施.可以在<sstream>头文件中找到Stringstreams .

std::stringstream converter;
converter << myString;
converter >> myDouble;
Run Code Online (Sandbox Code Playgroud)