0

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

wcstod(data, NULL)

问题是如果 data = 239.78,这个函数可以正常工作,但是我以这种格式接收它们data = 239,78

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

此代码的输出为 239。

任何人都可以帮忙吗?谢谢你。

4

1 回答 1

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;
于 2013-05-10T19:39:03.710 回答