C#类型转换的几种方式
1.(int)变量
该转换方式主要用于数字类型之间的转换,从int类型向long,float,double,decimal 类型转换可以使用隐式转换,但从long型到int 就需要使用显示转换,即使用该类型的转换方式否则产生编译错误。
该方式对于浮点数会无条件的舍去,会失去精确度。
对于char类型的到int类型的转换,传回的值是ASCII码。
代码示例:
float a = 2.2f;
int b = (int)a;
Console.WriteLine(b);//结果:2
Console.ReadKey();
2.int.Parse(变量)
public static Int32 Parse(string s);
该方式是将数字内容的字符串转换为int类型,如果字符串的内容为Null ,则抛出ArgumentNullException异常;如果字符串内容不是数字,则抛出FormatException异常。
使用该方法只能处理字符串的内容,而且转换后的字符串内容要在int类型的可表示范围之内。
代码示例:
string str = "100";
int str1 = int.Parse(str);
Console.WriteLine(str1);//结果:100
Console.ReadKey();
3.int.TryParse(变量 s, out int result)
public static bool TryParse(string s, out Int32 result);
参数:s 包含要转换的数字的字符串。
返回结果:
如果 true 成功转换,则为 s;否则为 false。
当此方法返回时,如果转换成功,则包含与 s 中所包含的数字等效的 32 位无符号整数值;如果转换失败,则包含零。 如果 s 参数为 null 或 System.String.Empty、格式不正确,或者表示的数字小于System.Int32.MinValue 或大于 System.Int32.MaxValue,则转换失败。 此参数未经初始化即进行传递;最初在 result 中提供的任何值都会被覆盖。
int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。
最后一个参数为输出值,如果转换失败,输出值为 0
该方式也是将数字内容的字符串转换为int类型,但是该方式有比int.Parse 优越的地方,就是它不会出现异常,最后一个参数result是输出值,如果转换成功则输出相应的值,转换失败则输出0。
代码示例:
string str = "100";
int i;
bool strbool = int.TryParse(str, out i);
Console.WriteLine(i);//结果:100
Console.WriteLine(strbool);//结果:True
bool strbool1 = int.TryParse(null, out i);
Console.WriteLine(i);//结果:0
Console.WriteLine(strbool1);//结果:False
Console.ReadKey();
4.Convert.ToInt32(变量)
该方式不仅可以将字符串类型转换为int,还可以将其他的类型转换为int。变量若为object或string类型,当其值为Nul时,会传回0,不会造成程序错误,但是若此string类型的值为string.Empty,转换成int时,程序仍会出错。
该方式对于float类型做四舍五入。
该方式同强制类型转换一样在处理char类型的时候,返回的都是ASCII码。
代码示例:
string str = "100";
int strInt= Convert.ToInt32(str);
int strInt1 = Convert.ToInt32(null);
Console.WriteLine(strInt);//结果:100
Console.WriteLine(strInt1);//结果:0
Console.ReadKey();