通过解析将字符串转换为 Visual C++ 中的双精度数

converting string to a double in visual c++ by parsing

在c#中很容易使用try parse方法,但是如何在visual c++中使用它。 我尝试使用 ToDouble、Parse...,但默认情况下 visual studio 无法识别它们。 如果有一些命名空间我应该添加以应用它请告诉..

您的 Windows phone 项目正在使用 C++/CX 开发,它是 WinRT 的 C++ 接口。

C++/CX 使用 Platform::String^ 表示字符串数据,WinRT HSTRING 的句柄。这些字符串存储 Unicode 字符数组,您可以通过 s->Data().

获得 wchar_t*

然后你只需要一个 C++ 函数来解析来自 wchar_t* 的数字数据。 wcstod,即 strtod 的宽字符版本,是一个不错的选择。

所以你的最终代码看起来像这样:

wchar_t* end_parse;
double value = wcstod(s->Data(), &end_parse);

您可以通过查看 *end_parse 检查解析是否在未处理整个字符串的情况下结束。通常,成功的解析会导致 *end_parse == L'[=18=]',但如果您处理的是逗号分隔值,则可能需要 *end_parse == L',',依此类推。