c#数据类型的相互转换

隐式转换,char也是数值类型,string类型不能进行显式或隐式转换

(注:值变量之间的赋值只是值的传递,每个变量都有自己的地址;而引用类型的之间的赋值是地址的传递,指向相同的类)

//int转换成double,隐式
int num = 10;
double d = num;
Console.WriteLine(d);

//char转换为int
char var = 'a';
int var1 = var;
Console.WriteLine(var1);

可以隐式转换的变量:

 

 

 

 显式转换:

精度大转换成精度小的需要显式转换

 //double转int,精度丢失,不会四舍五入
double d1= 52.533;
int num1 = (int)d1;
Console.WriteLine(num1);

显式转换中的数值不兼容问题:

不兼容会造成严重的数据丢失,转换失败时不会抛出异常,需要结合checked,unchecked关键字

 

convert转换:转换不成功会抛出异常,可以使用try-catch进行异常捕获

 //采用convert进行转换,第一种实质上是调用了第二种的方法
Convert.ToInt32("123");
int.Parse("123");

 

int.Tryparse转换:转换成功返回num,b为true;失败num=0,b为false

//采用int.TryParse进行转换
bool b = int.TryParse("123", out num);
Console.WriteLine(num);
Console.WriteLine(b);

 

posted @ 2020-07-11 21:54  葡萄藤u  阅读(212)  评论(0)    收藏  举报