天天看点

C# (int) 、Int.Parse() 、.Convert.toInt32() 三种强制转换方法解析

(int):表示使用显式强制转换,是一种类型转换,C#默认整型是int32,因此使用此方法转成int 32位,不遵循四舍五入,只截取整数部分;

(int)5.21       //输出5

Int.Parse():只支持将string类型转成int,Parse就是把String类型转换成int,char,double....等,也就是*.Parse(string) 括号中的一定要是string类型。

String st="5.21";

double n=5.21;

Int.Parse(st);      //输出5

Int.Parse(n);     //报错

.Convert.ToInt32(double value) ,不完全遵循四舍五入,如果 value 为两个整数中间的数字,则返回二者中的偶数,对比下面的例子:

Console.WriteLine(Convert.ToInt32(4.3));  //四舍五入,输出4
Console.WriteLine(Convert.ToInt32(4.5));  //第一位小数为5时,4.5在4和5之间,输出偶数4
Console.WriteLine(Convert.ToInt32(4.53)); //四舍五入,输出5

Console.WriteLine(Convert.ToInt32(5.3));  //四舍五入,输出5
Console.WriteLine(Convert.ToInt32(5.5));  //第一位小数为5时,5.5在5和6之间,输出偶数6
Console.WriteLine(Convert.ToInt32(5.53)); //四舍五入,输出6
           
注意:Convert.ToInt32()和int.Parse()对于空值(null)的处理不同,Convert.ToInt32(null)会返回0而不会产生任何异常,但int.Parse(null)则会产生异常。