如何在c ++中将bstr_t转换为double?
我正在考虑转换为 *char,然后 *char 转换为双倍?
如果您有一个char*
或wchar_t*
字符串,请使用strtod
/wcstod
函数来读取双精度数。
例如使用@Steve 的建议:
_bstr_t x;
double q = wcstod(x, NULL); // implicit conversion!
double p = strtod(x, NULL); // same
显然对and_bstr_t
都有隐式转换运算符,因此您可以直接在浮点解析函数中使用它们。const char *
const wchar_t*
您可以转换为const char*
(有一个转换器可以处理从宽字符到 MBCS 的映射),然后根据需要转换为双精度 -例如stringstream::operator>>
如果您想控制语言环境,请调用wcstod或 _wcstod_l。
bstr_t myBstr_t = L"1.234";
double d = wcstod(myBstr_t, NULL);