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

本文关键字:Double ToDouble 抛出异常 转换 字符串 格式 | 更新日期: 2023-09-27 18:00:06

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

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

代码有什么问题?

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

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

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

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