Convert.ToInt32小数为什么会异常

2019-12-30 11:54:15丽君
int iPX_QYZJ;
    
  iPX_QYZJ = Convert.ToInt32 (row.Cells[4].Value);
row.Cells[4].Value返回object类型。
当row.Cells[4].Value的值包含小数时,发送异常。row.Cells[4].Value值为整数时一切正常。
开发环境:
VS2005 C#, WindowsXPSP3
机器中同时装有VS2003
发生异常:
未处理 System.FormatException
  Message="输入字符串的格式不正确。"
  Source="mscorlib" ------回答--------- ------其他回答(1分)--------- 使用Int32.TryParse() ------其他回答(1分)---------
引用 1 楼 peter200694013 的回复:
使用Int32.TryParse()
然后parse不了 ------其他回答(1分)--------- 你可以ToDouble,然后强转。 ------其他回答(2分)--------- 有小数发生异常自然是正常的,因为它不符合整数的形式嘛。 ------其他回答(1分)---------
引用 5 楼 dancingbit 的回复:
有小数发生异常自然是正常的,因为它不符合整数的形式嘛。
+1 ------其他回答(1分)--------- 你要它ToInt32,但提供的字符串不符合Int32的形式,为什么不能发生异常?
不要忘了,计算机的聪明来自于哪里。 ------其他回答(2分)--------- 异常 条件  
FormatException value 不是由一个可选符号后跟数字序列(0 到 9)组成的。  
OverflowException value 表示小于 MinValue 或大于 MaxValue 的数字。  
 
看msdn
toDouble ------其他回答(1分)--------- 难道你认为"0.1"是整数吗? ------其他回答(2分)--------- 翻看.net源码就可以找到你想要的东西。 ------其他回答(2分)---------
引用 11 楼 hyx972 的回复:
引用 9 楼 mohugomohu 的回复:
难道你认为"0.1"是整数吗?
我的理解,不知道对不对:
Convert.ToInt32 强制转换,无论源数据是否是整形,只要他是数值就可以了。
明显不对,ToInt32要求被转换的字符串要符合整数的形式的。 ------其他回答(1分)--------- double类型的不能转换为int类型的 ------其他回答(1分)---------