c ++でbstr_tをdoubleに変換するにはどうすればよいですか?
* charに変換してから、* charをdoubleに変換することを考えていましたか?
char*
またはwchar_t*
文字列がある場合は、 strtod
/wcstod
関数を使用してdoubleを読み取ります。
たとえば、@ Steveの提案を使用します:
_bstr_t x;
double q = wcstod(x, NULL); // implicit conversion!
double p = strtod(x, NULL); // same
どうやらtoとの_bstr_t
両方に暗黙の変換演算子があるので、float解析関数で直接使用できます。const char *
const wchar_t*
キャストしてconst char*
(ワイド文字からMBCSへのマッピングを処理するコンバーターがあります)、必要に応じてdoubleに変換できます-たとえば、stringstream :: operator >>
ロケールを制御する場合は、wcstodまたは_wcstod_lを呼び出します。
bstr_t myBstr_t = L"1.234";
double d = wcstod(myBstr_t, NULL);