double.Parse抛出一个System.FormatException

我试图将一些字符串解析为double值,使用此解析方法重载:

double.Parse("198.222213745118", CultureInfo.CurrentUICulture); 

CultureInfo.CurrentUICulture是fr-FR。 但这是抛出FormatException类型的exception。

可能是什么原因?

法语(即fr-FR )使用逗号表示小数部分的开头,而不是句点。 他们用一段时间来分隔数千人。

我知道这个问题很老,但我的回答可能对其他人有帮助。 所以这就是答案:

 double.Parse("198.222213745118", System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo); 

代替

 double.Parse("198.222213745118", CultureInfo.CurrentUICulture); 

我建议使用Double.TryParse而不是.Parse,因为它使用起来更安全,并确保在解析时不会出现任何exception。

这是您可以使用的代码,

 double answer = -1; Double.TryParse("Value", out answer); 

现在你所要做的就是做一个条件语句,它将检查它是否确实解析了字符串。