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"
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"
FormatException value 不是由一个可选符号后跟数字序列(0 到 9)组成的。
OverflowException value 表示小于 MinValue 或大于 MaxValue 的数字。
看msdn
toDouble
int iVal;dPX_QYZJ = 1.12;iVal = Convert.ToInt32 ( dPX_QYZJ ); //OKiVal = Convert.ToInt32 ( dPX_QYZJ.ToString() ); //Error真是神奇的VS2005 C# 本段代码在VS2005 VB 中一切正常!真TMD神奇!
Convert.ToInt32 强制转换,无论源数据是否是整形,只要他是数值就可以了。
明显不对,ToInt32要求被转换的字符串要符合整数的形式的。
不符合整数格式
int a = Convert.ToDouble("0.1");
这样就好了
下一个是string型的转换为int,这样string的内容必须为符合整型的格式。
这两个语句不等价的。
跟VB差别 蛮大的
row.Cells[4].Value 可能是字符串(里面含有空格字符串)
你仔细看一下
不搞了!
需要在好好学习!
Debug发现row.Cells[4].Value返回object类型被默认转成String了!