您现在的位置是:首页 > 文章详情

c#小灶——8.自动类型转换和强制类型转换

日期:2019-08-15点击:377

c#小灶——8.自动类型转换和强制类型转换
前面已经认识了不同的数据类型,你们有没有尝试过让不同的数据类型进行运算呢?

int a = 1;
double b = a;
Console.WriteLine(b);
运行结果是:1

我们把一个整型的变量赋值给了一个浮点型的变量,可以正常的输出,如果我们把一个浮点型的变量赋值给一个整型的变量呢?

double a = 1;
int b = a;
Console.WriteLine(b);
这样就会报错。

为什么呢?因为我们之前说过,变量就像一个容器,里面存放着变量的值。而数据类型就相当于容器的类型,决定了容器能够存放什么样的值。

试想,生活中我们把小盒子里的东西放进大盒子里,是没有问题的。数据类型也是这样。我们把整型的数据赋值给浮点型是可以放进去的,放进去之后里面的值1其实也就变成了浮点型,即1.0,不过c#输出的时候,很聪明的把后面的.0去掉了。

结论:占字节小的可以向占字节大的自动转换,但占字节大的不能向占字节小的自动转换。

这种数据类型的转换是自动完成的,所以叫做自动类型转换。

如果我偏要把字节大的赋值给字节小的怎么办呢?试想,生活中我们把大盒子中的东西装进小盒子,东西少还好,东西多了就只能装进去一部分了。现在我说,我不听我不听,我就是要把大盒子的东西装进小盒子。哭唧唧……

没办法,我们只能使用强制类型转换,即把占字节大的数据类型强制转换为占字节小的数据类型。

double a = 1.2;
int b = (int)a;
Console.WriteLine(b);
我们在引用变量a给b赋值时,在a前面加了个括号,就是把数据类型强制转换为括号里的数据类型。我们运行一下,结果是:1

a的值是1.2,强制类型转换赋值给了b之后就只剩1了,因为整型的没有小数部分,所以装不下了啊。
原文地址https://www.cnblogs.com/hmswt/p/11362821.html

原文链接:https://yq.aliyun.com/articles/714614
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章