Convert.ToDouble 抛出 System.FormatException 出于某种未知原因
本文关键字:于某种 未知 FormatException ToDouble 抛出 System Convert | 更新日期: 2023-09-27 18:18:22
我正在解析一个 xml 文件,我正在尝试将一个值从 xml 文件中读取到双精度变量中。
这是我的代码的样子:
double someDouble = Convert.ToDouble(someString);
这里的问题是,当执行这行代码时,我得到
类型为"系统格式异常"的未处理异常发生在 姆科利布.dll
其他信息:输入字符串格式不正确。
调试时,我看到someString
的值在"局部变量"视图中为"45.00000000"。
据我所知,Convert.ToDouble 支持将字符串转换为双精度。
注意:只是为了确保我也尝试过
double someDouble = Convert.ToDouble(someString.Trim('"'));
它对我来说很好用。
我的心理调试技能告诉我,你正在运行一种使用,
作为小数分隔符的文化。
通过CultureInfo.InvariantCulture
.
只要要转换的字符串实际上是一个数字,您编写的代码就应该有效。 也许字符串中的某处有一个您看不到的非数字。 这是我唯一能想到的。
这不会解决您的特定问题,但我建议使用Double.TryParse而不是Convert.ToDouble。 您在很大程度上消除了使用 Double.TryParse 引发异常的可能性
我会尝试调用 Trim 但没有参数""。 请尝试一下,让我知道结果。
double someDouble = Convert.ToDouble("45.00000000"); //returns 45.0