C#初级开发原创教程第三课 数据类型转换
本帖最后由 王尼玛 于 2014-10-24 01:08 编辑大家好,我是王尼玛。今天起我给大家讲解C#开发教程,本次是第三课。大家在课后有什么疑问可以跟帖留言,我会尽我所能来解答。毕竟众口难调,大家有什么建议也可以跟帖告诉我。
此教程为本人原创,转载请注明"吾爱汇编论坛王尼玛原创"
好了,废话不多说,开始今天的学习.
有朋友说不太明白我写的教程,其实编程这东西很简单,一个字,练!你光看我写的多半是一头雾水,因为你没实际跟着我讲的代码去操作,你要跟着我的代码敲,多敲代码,多练习我给的例子,再配合我例子后面的讲解,自然就明白我讲的是什么了.还不明白?跟帖问吧
1.自动数据类型转换
问题:
某班第一次考试平均分91.89分,第二次比第一次增加2分,第二次平均分是多少?
让我们来看这个实例,注意代码中的注释:
double firstAvg = 91.89;//第一次平均分
double secondAvg;//第二次平均分
int rise = 2;//增长的分数
secondAvg = firstAvg + rise;//自动类型转换
Console.WriteLine("第二次平均分是:" + secondAvg);//输出第二次的平均分
Console.ReadKey();程序运行的结果:
\
下面的话看似复杂,其实很好理解:
从代码中可以看出,double类型变量firstAvg和int类型变量rise相加后,计算的结果赋给一个double类型变量secondAvg,这时
就发生了自动类型转换。这个神秘的过程到底是什么呢?
规则一:
如果一个操作数为double类型,则整个表达式可提升为double类型
比如说:
int score = 80;
double newScore = score;
这里,int变量score隐式地自动转换为double类型变量.
规则二:
满足自动类型转换的条件.
两种类型要兼容,数值类型(整形和浮点型)互相兼容
目标类型大于源类型,double类型可以存放int类型数据,因为为double类型变量分配的空间宽度足够存储int型变量.
2.强制数据类型转换
事实上,自动类型转换并非所有情况下都有效.如果不满足上述条件,比如在必要时必须将double类型变量的值赋给一个int类型变量时,就需要强制
类型转换.
语法:
(数据类型)表达式
在变量前加上括号,括号中的类型就是你要强制转换成的类型.比如说:
double d = 34.5252;//声明一个值为34.5252的双精度类型变量
int b = (int)d;//强制将变量d转换为int类型我们再看一个实例:
去年Apple笔记本所占的市场份额是20,今年增长的市场份额是9.8,求今年所占的市场份额?
看看该如何解决这个问题:
int before = 20;//去年所占市场份额
double rise = 9.8;//增长的份额
//计算新的市场份额(double类型变量强制转换成int类型变量)
int now = before + (int)rise;//现在的份额
Console.WriteLine("新的市场份额是" + now);
Console.ReadKey();看看运行结果:
从实例中可以看出,由于强制类型转换往往是从宽度大的类型转换成宽度小的类型,使数值损失了精度(如2.3变成了2,34.5353变成了34)
这节课就讲到这里,有不懂的地方可以留言给我.
大家喜欢本教程的话还请多多加分,这也是我继续做下去的动力!
谢谢大家
王尼玛C#初级开发原创教程目录:
1.C#初级开发原创教程第一课Visual Studio 2013的安装
2.C#初级开发原创教程第二课 控制台的输出
3.C#初级开发原创教程第三课 数据类型转换
4.C#初级开发原创教程第四课 深入控制台应用程序
5.C#初级开发原创教程第五课 bool类型,关系运算符与if选择结构
6.C#初级开发原创教程第六课 复杂选择结构
7.C#初级开发原创教程第七课循环结构(一)
8.C#初级开发原创教程第八课 循环结构(二)
9.C#初级开发原创教程第九课 数组
10.C#初级开发原创教程第十课 面向对象之类和对象
11.C#初级开发原创教程十一课 类的无参方法
12.C#初级开发原创教程十二课 带参数的方法(一)
13.C#初级开发原创教程第十三课 字符串的操作
新鲜出炉的吃了!{:6_155:} {:6_169:}如此牛逼的教程,学习! 不太明白!!!! lqy1471 发表于 2014-10-10 17:07
楼主大大 c#如何字符集转码呢
你要哪种转哪种? lqy1471 发表于 2014-10-10 17:12
比如 ISO8859-1 转GB2312
可以试试System.Text.Encoding.GetEncoding方法,里面有很多参数,都是转码的 第三课完成,继续看下一课
页:
[1]
2