我正在尝试将BSTR转换为浮点数:
wcstod(data, NULL)
问题是如果data = 239.78,这个函数可以正常工作,但我收到的格式为 data = 239,78 。
CComBSTR data = SysAllocString(L"239,78");
cout<<wcstod(data,NUll)<<endl;
此代码的输出为239。
有人可以帮忙吗? 谢谢。
答案 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;