BSTR を float に変換しようとしています:
wcstod(data, NULL)
問題は、 data = 239.78 の場合、この関数が正常に機能することですが、この形式data = 239,78で受信します。
CComBSTR data = SysAllocString(L"239,78");
cout<<wcstod(data,NUll)<<endl;
このコードの出力は 239 です。
誰でも助けることができますか?ありがとうございました。
BSTR を float に変換しようとしています:
wcstod(data, NULL)
問題は、 data = 239.78 の場合、この関数が正常に機能することですが、この形式data = 239,78で受信します。
CComBSTR data = SysAllocString(L"239,78");
cout<<wcstod(data,NUll)<<endl;
このコードの出力は 239 です。
誰でも助けることができますか?ありがとうございました。
代わりにwcstod_lを使用し、必要なロケールを 3 番目の引数として渡す必要があります。これにより、「,」が正しく理解され、解析されます。このようなもの:
_locale_t fr = _create_locale(LC_ALL, "fr-FR"); // french locale
CComBSTR data = SysAllocString(L"239,78");
cout<<wcstod_l(data, NULL, fr)<<endl;