当我想将字符串格式的负数转换为Double时,ToDouble总是抛出异常



当我运行以下代码时,它总是抛出一个异常

string a = "-12.12";
double b = Convert.ToDouble(a);
An exception of type 'System.FormatException' occurred in mscorlib.ni.dll but was not handled in user code

代码有什么问题?

我强烈怀疑您运行的区域设置使用,作为小数分隔符。。。或者使用不同的符号进行否定。您可以传入CultureInfo来指定如何解析-我通常使用double.Parse而不是Convert.ToDouble:

double x = double.Parse(a, CultureInfo.InvariantCulture);

那绝对没问题。如果它仍然不起作用,这表明您的实际字符串不完全是"-12.12"。例如,如果"-"实际上是一个短划线或类似的东西,它将无法正确解析。

最新更新