1

c ++でbstr_tをdoubleに変換するにはどうすればよいですか?

* charに変換してから、* charをdoubleに変換することを考えていましたか?

4

3 に答える 3

4

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*

于 2011-07-15T00:29:55.443 に答える
2

キャストしてconst char*(ワイド文字からMBCSへのマッピングを処理するコンバーターがあります)、必要に応じてdoubleに変換できます-たとえば、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 に答える