2010-11-23 99 views
-3

虽然我试图将值转换为Int32,但我得到一个错误格式异常,这意味着值的格式不正确。我认为我正在以正确的格式转换值。当我转换为Int32格式异常

+15

你想要转换什么值?你可以给更多的信息或摘录吗? – SubniC 2010-11-23 12:05:17

+4

是的,我们需要看到你想要转换的值。 – Kieron 2010-11-23 12:06:15

回答

3

尝试使用Int32.TryParse()你可以找到MSDN

3

文档,你会得到的情况下FormatException这样的未来:

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

因为

出现FormatException

值不包括一个可选的标志后跟数字序列(0到9)。

MSDN

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

这里我们分享您的代码,你可能错过了一些

0

或许暗示是“我想我在正确的格式转换的值虽然”

是你确定你的号码是根据你目前的文化格式?

如果不是,它是Int32.TryParse(字符串的NumberStyles,的IFormatProvider,的Int32%) [详细这里] [1],你应该使用

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

0

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

我被困在这个问题中的条件是将动态生成的十六进制的十进制值转换为int。通过使用GetType()找出值的类型并首先将其转换为double,然后int解决问题。