当我尝试将值转换为Int32时,我得到一个错误格式异常,这意味着该值的格式不正确。我想我正在以正确的格式转换一个值。
答案 0 :(得分:3)
尝试使用Int32.TryParse()
,您可以找到有关MSDN
答案 1 :(得分:3)
在接下来的情况下,您将获得FormatException
:
Convert.ToInt32("foo");
Convert.ToInt32(5.5);
,因为
出现FormatException
值不包含可选符号后跟一系列数字(0到9)。
答案 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解决了问题。