将BSTR转换为float的问题

时间:2013-05-10 16:55:56

标签: com implicit-conversion bstr

我正在尝试将BSTR转换为浮点数:

wcstod(data, NULL)

问题是如果data = 239.78,这个函数可以正常工作,但我收到的格式为 data = 239,78

CComBSTR data = SysAllocString(L"239,78");
cout<<wcstod(data,NUll)<<endl;

此代码的输出为239。

有人可以帮忙吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

您应该使用wcstod_l代替并传递您需要的语言环境作为第三个参数,以便正确理解和解析','。像这样:

_locale_t fr = _create_locale(LC_ALL, "fr-FR"); // french locale
CComBSTR data = SysAllocString(L"239,78");
cout<<wcstod_l(data, NULL, fr)<<endl;