1

如何在c ++中将bstr_t转换为double?

我正在考虑转换为 *char,然后 *char 转换为双倍?

4

3 回答 3

4

如果您有一个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*

于 2011-07-15T00:29:55.443 回答
2

您可以转换为const char*(有一个转换器可以处理从宽字符到 MBCS 的映射),然后根据需要转换为双精度 -例如stringstream::operator>>

于 2011-07-15T00:27:35.510 回答
2

如果您想控制语言环境,请调用wcstod或 _wcstod_l。

bstr_t myBstr_t = L"1.234";

double d = wcstod(myBstr_t, NULL);
于 2011-07-15T00:48:06.327 回答