当我运行以下代码时,它总是抛出一个异常
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"。例如,如果"-"实际上是一个短划线或类似的东西,它将无法正确解析。