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

时间:2009-05-27 16:42:45

标签: c++ string visual-c++ double type-conversion

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

Unicode支持也不错。

谢谢!

4 个答案:

答案 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)

strtod(或wcstod)会将字符串转换为双精度值。

(需要<stdlib.h><wchar.h>