Csharp的类型转换
一.强制转换(int):
c++string类型(int)表示显式强制转换,是一种类型转换。当我们从int 到long、floa、double、decimal时,都可以使用隐式转换,而当我们从long到int(以及其他类似的转换是)就需要使用显式转换,否则会产生编译错误。
String stringval=”123”;
Int i =(int)stringval; //是错误的,用()不能是string 直接转换为int
而且(int)stringval;也是错误的;
String stringval;
Int i= 123;
Stringval=(int)i;//也是错误的,用()不能使int变成string
①该转换方式主要用于数字的转换
②该转换对浮点数是,会失去起精度(即直接省略小数部分)
③用来处理char类型的值,会返回ASCⅡ的值
二.Int.Parse()
将数字类型的字符串转换为int。
括号内只能是字符串,该函数只能处理字符串,而且字符串的内容只能在int可表示的范围内。
若参数string的值是:
①是nul,抛出异常;
②是“”(空/pty),抛出异常;
③string的格式不是数字类型的,则抛出异常:字符串格式不对;
④若超出int的表示范围([MinValue,MaxValue]),抛出异常
Int.pause(4.5);//这届报错:字符串的格式不正确
Double.parse(”4.5”);//正确
Double.parse(”4”);//正确
格式:
*.parse() sbyte——>long 和float——>decimal
注意:没有string.Pause()
三.Int.TryParse(string s , out int result)
该方式也是将数字内容的字符串转为int类型,但是该方式比int.Parse优越的地方,就是它不会出现异常。如果转换成功该函数返回true,如果转换失败该函数返回false。很明显,最后一个参数为输出值,如果转换失败,输出值为0;如果转换成功,则输出相应的值。
四.Convert.ToInt()
该方式不仅可以将字符串转为int类型,还可以将其它类型的值转成int类型。变量若为object或string类型,当其值为null时,会传回0,不会造成程序错误,但是若此string 类型的值为string.Empty,在转型成int时,仍会造成程序错误。
注:
①该方式同强制转换一样,不能用来处理char类型,否则传回的是ASCII代码
②int32(“4.5”);//错误,会抛出异常,字符串格式不对。
int32(4.5);//正确,
③用int32()来处理浮点数的时候:原则是“四舍六入五看奇偶”
附:Convert.ToInt32与int.Parse较为类似,实际上Convert.ToInt32内部调用了int.Parse:
四.个人总结
①Convert.ToInt32的参数比较多,Int.Parse只能转换string
类型的.
②Parse就是把String转换成int,等,也就是
*.Parse(string) 括号中的一定要是string.
③(int) 属cast 转换,只能将其它数字类型转换成int 类型,它不能转换字符串,比如下例就会失败:
string v = "1"; int n = (int)v;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论