我有一个读取 xml 文件的程序。我已经有一个读取特定元素并将其放在变量中的代码。唯一缺少的是将元素(数字)与双变量进行比较,但元素被视为字符串。我在 Google 中看到的只是将双精度转换为字符串。如何将字符串转换为双精度?
编辑:
我现在明白了,我还不能回答我自己的问题,因为我的声誉仍然很低。这就是我到目前为止所做的并且它有效:
string stringNum = "2";
double value = double.Parse(stringNum);
var number = double.Parse("2.5", CultureInfo.InvariantCulture);
提醒一下,您可能想看一下Parse(String, IFormatProvider)
,因为解析 XML 意味着您必须查看“数字字符串”的格式。通常的做法是CultureInfo
在使用时指定ToString
或Parse
方法。在这里查看更多信息。
如果未提供 CultureInfo 或 System.IFormatProvider 对象,则重载成员提供的默认值可能不会在所有语言环境中产生您想要的效果。此外,.NET Framework 成员会根据您的代码可能不正确的假设来选择默认区域性和格式设置。为确保代码在您的场景中按预期工作,您应该提供特定于文化的信息。
您可以使用Double.Parse
,第二个参数指定文件中数字的文化。
var newDouble = Double.Parse(theString, new CultureInfo("en-GB"));