转换为Int32时格式化exception

虽然我试图将值转换为Int32,但我得到一个错误格式exception,这意味着该值的格式不正确。 我想我正在转换正确格式的值。

尝试使用Int32.TryParse()您可以在MSDN上找到文档

在下一种情况下,您将获得FormatException

 Convert.ToInt32("foo"); Convert.ToInt32(5.5); 

因为

出现FormatException

value不包含可选符号后跟一系列数字(0到9)。

MSDN

 string str = "123"; int i = 0; if (int.TryParse(str, out i)) { //do your logic here } 

在这里分享你的代码,你可能会错过一些东西

也许提示是“我认为我正在以正确的格式转换价值”

您确定您的号码是根据您当前的文化格式化的吗?

如果没有,那么你应该使用的是Int32.TryParse(String,NumberStyles,IFormatProvider,Int32%)[详情] [1]

[1]: http://Int32.TryParse方法(String,NumberStyles,IFormatProvider,Int32%)

您始终可以使用GetType()检查传递给此类函数的值的类型。

我遇到这个问题的条件是将动态生成的stringyfied十进制值转换为int 。 使用GetType()计算出值的类型,然后首先将其转换为double然后int解决了问题。