double.Parse抛出一个System.FormatException

时间:2013-09-17 10:34:44

标签: c# formatexception

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

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

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

可能是什么原因?

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:0)

我知道这个问题已经过时但我的回答可能对其他人有所帮助。 所以这就是答案:

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

而不是

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

答案 2 :(得分:-2)

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

以下是您可以使用的代码,

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

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