int.parse("abc")之错

int.parse()为强制装换函数。

int.Parse(string类型变量名) 

   该方式是将数字内容的字符串转为int类型,如果字符串内容为空或者null时,则抛出ArgumentNullException异常;如果字符串内容不是数字,则抛出FormatException异常;如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常。 

  使用该方法切忌的一点就是只能处理字符串内容,而且字符串内容只能在int类型可表示的范围之内。

因为abc字符串不是数字,所以会出现FormatException异常。

 通过在网上查询强制装换函数及用法。我找到3个函数 Convert、Parse、TryParse、(int)函数都是将值转换成整数,但是四者之间各有异同

1 (int)变量名[强制类型转换]: 

     该转换方式主要用于数字类型转换,从int类型到long,float,double,decimal类型,可以使用隐式转换,但是从long类型到int类型就需要使用显式转换,也就是该数据类型转换方式,否则会产生编译错误。 

      该方式对于浮点数会做无条件舍去,失去精确度 

2int.TryParse(string s, out int result) 

      该方式也是将数字内容的字符串转为int类型,但是该方式比int.Parse优越的地方,就是它不会出现异常。如果转换成功返回 true,如果转换失败返回 false。很明显,最后一个参数为输出值,如果转换失败,输出值为 0;如果转换成功,则输出相应的值。

 4 Convert.ToInt32 

      该方式不仅可以将字符串转为int类型,还可以将其它类型的值转成int类型。变量若为object或string类型,当其值为null时,会传回0,不会造成程序错误,但是若此string类型的值为string.Empty,在转型成int时,仍会造成程序错误。     该方式对于浮点数会做四舍五入。

原文地址:https://www.cnblogs.com/wang-yong-qiang/p/4394433.html