10-10 C#基础数据类型转换(熟练掌握)
第一课 数据类型之间的转换
基本类型的转换:自动转换(隐式转换)和强制转换(显示转换)
装箱转换:允许值类型隐式转换成引用类型。
拆箱转换:允许将引用类型显示转换成值类型
分为2个步骤:首先,检查对象是否超出类型范围,然后再进行转换。
Object包含所有的类型,其他类型都可以转换成Object类型,但Object不能转换成其他类型。
例: int i=0
object o = i;
三种转换方式:
1)、用( )。( )内是转换后的数据类型,只能转换同一大类(值类型之间转换或引用类型之间转换)。强制转换
例1: int i = 0;
double d = (double)i;
Console.Write(d);
Console.ReadLine();
例2: int i = 0;
double d=i;
d = 1.23;
i=(int)d;
Console.Write(i);
Console.ReadLine();
执行后:
例3、 float f = 1.23f;
int i = f;
Console.Write(i);
Console.ReadLine();这是错误的写法。
当编写控制台程序完成启动时出现上面的内容,表示浮点型无法自动(隐式)转换成整形,中间必须有一个强制转换的过程。
正确编写:
float f = 1.23f;
int i = Convert.ToInt16(f);
Console.Write(i);
Console.ReadLine();
执行后:
2)、使用convert(将一个基本数据类型转换为另一个基本数据类型的类)。Convert只有在符合数据类型范围的情况下才能进行转换。强制转换
例1: float f=1.3f;在创建float类型时,要加F后缀。
double d=Convert.ToDouble(f);
Console.Write(d);
Console.ReadLine();
执行后:
例2、 string s = "12";
int i = Convert.ToInt16(s);
Console.Write(i);
Console.ReadLine();
执行后:
3)、.parse解析。用于字符串型转相应值类型。
4)例: string s = "12.2";
double d = double.Parse(s);
执行后:(使用parse执行后,数值不变。)隐式转换
但是,string 类型无法直接转换为int 类型,必须再经过强制转换的过程。
例: string s = "12.2";
double d = double.Parse(s);
int i=(int)d;
Console.Write(i);
Console.ReadLine();
执行后:
正确编写过程: float a;
string b = "3.14";
a = float.Parse(b);
int i = (int)a;
Console.Write(i);
Console.ReadLine();
执行后:
练习题: 判断: Console.WriteLine(“请输入一个100以内的整数:37”);
int a = Convert.ToInt16(37);
Console.WriteLine(a % 7 == 0);//a是否能被7整除
Console.WriteLine();
Console.WriteLine(a % 10 == 7);//a的个位是否是7
Console.WriteLine();
Console.WriteLine(a / 10 == 7);//a的十位是否是7
Console.ReadLine();
执行后,出现一下界面:
随堂练习:
设计一个小程序:输入100内的整数,每行输入一个数值,输入完第十个数的时候,自动求得这个数的和。(任意录入,每次执行,人工录入不同的数,就可以得到不同的结果。)
操作界面:
执行后显示界面:
补充:代位符
string xingming="小明";
string xingbie="男";
Console.Write("你的姓名是:{0},性别{1}",xingming,xingbie) ;
Console.ReadLine();
执行后显示界面: