将字符串转换为C#中的双精度或任何数字类型的变量



我有一个读取xml文件的程序。我已经有了一个代码,可以读取特定的元素并将其放入变量中。唯一缺少的是将元素(数字)与双变量进行比较,但元素被视为字符串。我在谷歌上看到的只是从double到string的转换。如何将字符串转换为双精度?

编辑:

我现在明白了,我还不能回答我自己的问题,因为我的声誉仍然很低。这就是我迄今为止所做的,它很有效:

string stringNum = "2";
double value = double.Parse(stringNum);
var number = double.Parse("2.5", CultureInfo.InvariantCulture);

请参阅MSDN 上的Double.Passe

作为一个提醒,您可能想了解一下Parse(String, IFormatProvider),因为解析XML意味着您必须查看"数字字符串"的格式。在使用ToStringParse方法时,通常会指定CultureInfo。查看此处了解更多信息。

如果未提供CultureInfo或System.IFormatProvider对象,重载成员提供的默认值可能没有您希望在所有区域设置中使用的效果。此外,.NET Framework成员根据可能的假设选择默认区域性和格式不适合您的代码。确保代码按预期工作在您的场景中,您应该提供特定于文化的信息。

您可以使用Double.Parse,第二个参数指定文件中数字的区域性。

var newDouble = Double.Parse(theString, new CultureInfo("en-GB"));

最新更新