转换为Int32时格式化异常

时间:2010-11-23 12:02:54

标签: c#

当我尝试将值转换为Int32时,我得到一个错误格式异常,这意味着该值的格式不正确。我想我正在以正确的格式转换一个值。

5 个答案:

答案 0 :(得分:3)

尝试使用Int32.TryParse(),您可以找到有关MSDN

的文档

答案 1 :(得分:3)

在接下来的情况下,您将获得FormatException

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

,因为

  

出现FormatException

     

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

MSDN

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

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

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

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

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

答案 4 :(得分:0)

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

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

相关问题