我正在尝试将一些字符串解析成双精度值,使用这个解析方法重载:
double.Parse("198.222213745118", CultureInfo.CurrentUICulture);
当前的CultureInfo.CurrentUICulture是fr-FR。 但这会抛出一个类型为FormatException的异常。
可能的原因是什么?
我正在尝试将一些字符串解析成双精度值,使用这个解析方法重载:
double.Parse("198.222213745118", CultureInfo.CurrentUICulture);
当前的CultureInfo.CurrentUICulture是fr-FR。 但这会抛出一个类型为FormatException的异常。
可能的原因是什么?
法语(即fr-FR
)使用逗号来表示小数部分的开始,而不是句点。他们使用句点来分隔千位。
double.Parse
不会接受 .
,它会抛出异常。 - Eduard Dumitru我知道这个问题很旧,但我的答案可能会帮助其他人。 所以这就是答案:
double.Parse("198.222213745118", System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);
替代
double.Parse("198.222213745118", CultureInfo.CurrentUICulture);
我建议使用Double.TryParse而不是.Parse,因为它更安全,并确保在解析时不会出现任何异常。
这里有一段代码供您使用,
double answer = -1;
Double.TryParse("Value", out answer);
CultureInfo.InvariantCulture
。 - sa_ddam213