Convert.ToDouble因某些未知原因抛出System.FormatException

时间:2011-12-19 15:03:36

标签: c# .net parsing

我正在解析一个xml文件,我正在尝试将一个从xml文件读取的值分配给一个double变量。

这是我的代码:

double someDouble = Convert.ToDouble(someString);

这里的问题是,当执行这行代码时,我得到了

  

发生了'System.FormatException'类型的未处理异常   mscorlib.dll中

     

其他信息:输入字符串的格式不正确。

当我调试时,我在“本地人”视图中看到someString的值为“45.00000000”。

据我所知Convert.ToDouble支持将字符串转换为double。

注意:只是为了确保我也尝试了

double someDouble = Convert.ToDouble(someString.Trim('"'));

4 个答案:

答案 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