我正在解析一个xml文件,我正在尝试将一个从xml文件读取的值分配给一个double变量。
这是我的代码:
double someDouble = Convert.ToDouble(someString);
这里的问题是,当执行这行代码时,我得到了
发生了'System.FormatException'类型的未处理异常 mscorlib.dll中
其他信息:输入字符串的格式不正确。
当我调试时,我在“本地人”视图中看到someString
的值为“45.00000000”。
据我所知Convert.ToDouble支持将字符串转换为double。
注意:只是为了确保我也尝试了
double someDouble = Convert.ToDouble(someString.Trim('"'));
答案 0 :(得分:12)
它适用于我。
我的通灵调试技巧告诉我你在一种使用,
作为小数分隔符的文化中运行。
通过CultureInfo.InvariantCulture
。
答案 1 :(得分:2)
只要转换的字符串实际上是一个数字,您编写的代码就可以工作。也许在你看不到的字符串中有一个非数字。这是我唯一能想到的。
这不会解决您的特定问题,但我建议使用Double.TryParse而不是Convert.ToDouble。您很大程度上消除了使用Double.TryParse
抛出异常的可能性答案 2 :(得分:1)
我会尝试调用Trim但没有参数'“'。请尝试一下,让我知道结果。
答案 3 :(得分:0)
double someDouble = Convert.ToDouble("45.00000000"); //returns 45.0