20. 字符串的转换
类型转换(一):
当小容量的类型(低精度的数据类型)存储到大容量的类型(高精度的数据类型)中时,可以自动转换即“隐式转换”;当大容量的类型存储到小容量的类型时,则无法自动转换需要强制转换即“显式转换”。
隐式转换:系统自动转换;
显式转换:需要调用方法。
1 //例1: 2 char mychar = 'c'; 3 int myint = 97; 4 //myint = mychar; //小容量的char类型可以自动转换到容量比他大的int类型中(隐式) 5 //Console.WriteLine(myint); 6 7 mychar = (char)myint; //显式转换之方法一。检查溢出的方法:mychar=checked((char)myint); 8 Console.WriteLine(mychar);
类型转换(二):
(int);Convert.ToInt32() ;int.Parse();int.TryParse() 的区别。Convert.ToInt32() 使用的类型最为广泛。
1、(int)
方法一:不会进行四舍五入,直接舍去小数。此方法不适合用于将 string 转换为 int,只能转换数值类型为 int,反过来也是只能转换数值类型而不能转换引用类型;
2、Convert.ToInt32()
方法二:他会将空值 null 转换为 0。该方法转换的数值小数点位数为 1-4 时直接舍去;6-9 时进位;当小数点为 5 时,则返回一个临近的偶数;
注:转为float类型写法为:Convert.ToSingle()
3、int.Parse()
方法三:方法不能转换空值,而且只能将 string 转换为数值(int/float/double等)类型,不能实现其他类型的转换,其他引用类型也不能转换;
4、int.TryParse()
方法四:是一种较为安全的转换方法,也是只能将 string 转换为数值(int/float/double等)类型。
1 //例1: 2 string mystr = "456"; 3 double mydb = 24.4; 4 int intResut; 5 6 //(int)方法一:不会进行四舍五入,直接舍去小数 7 intResut = (int)mydb; 8 9 //Conver.ToInt32();方法二: 他会将空值 null 转换为0 10 intResut = Convert.ToInt32(mydb); 11 Console.WriteLine(intResut); 12 13 //int.Parse(); 14 intResut = int.Parse(mystr); 15 Console.WriteLine(intResut); 16 Console.ReadKey();
1 例2:int.TryParse()转换 2 static void Main(string[] args) 3 { 4 string mystr = "520"; 5 int intResultNum = 0; //输出参数 6 //int.TryParse()是一种较为安全的转换方法 7 //意思是将字符串“mystr”转换为“int”型输出到“intResultNum”,并判断真假 8 bool booResult = int.TryParse(mystr, out intResultNum); 9 Console.WriteLine("是否可以转换:{0};转换的值为:{1}", booResult, intResultNum); 10 Console.ReadKey(); 11 }