一、数值类型的转换
隐式转换:(无需指明转换,编译器会自动将操作数转换为相同的类型)
1.发生在同种类型之间的转换
int a=10;
int b=a;
2.值类型从小区间到大区间的转换
int a=10;
long b=a;
float c=b;
double d=c;
都是可以直接赋值的
显式转换:
从大区间到小区间的转换(可能导致数据丢失或者异常)
方法:用强制转换运算符: 变量 =(转换为的数据类型)+要转换的变量名
double a=10.9
float b=(float)a;
int c=(int)b;
二、值类型转换为字符串类型
方法1:值类型的变量名+“.”+ToString()+“;” 这样就可以将一个数值类型转换为字符串类型
方法2:利用字符串拼凑的原理:""+数值类型的数字
1.
int a=100;
string str=a.ToString(); //此时str存放a转换之后的字符串 100
int b=10;
Console.WriteLine("a+b="+(str+b)); //这时候运算的是字符串拼接,打印出的是10010
2.
float c=12.3f;
string str_2=""+c; //第二种方法,直接写字符串拼接,这时候c也被转换为字符串类型,str_2中存放的是12.3
三、字符串类型转换成值类型
方法1(推荐): 值类型+“.”+Parse(字符串变量名);
1.
string str="1234"; //注意给字符串赋值的时候,后面的字符串加双引号
int num=int.Parse(str); //str转换成整数类型存放在num中
2.
错误的转换,需要考虑转化之后是否能接收接收的问题
string info="12.3";
int num=int.Parse(info);//异常,12.3想要转化为int无法被接收,转化为浮点型可以实现
3.
string info = " 123";
int num = int.Parse(info);
Console.WriteLine("num+123=" + (num + 123));
string info_1 = "0123";
int num_1 = int.Parse(info_1);
Console.WriteLine(num_1+2);
string info_2 = ".123";
float num_2 = float.Parse(info_2);
Console.WriteLine(num_2+2);
/*总结:
* 1.可以在数字前后加若干个空格,但是不能在数字中间加
* 2.当转换成整数时,数字后边不能加点
* 3.在转换成浮点型的时候,可以在数字前后加‘.’
* 4.可以再数字的前中后加若干个“0”,加在最前面的0不影响数值大小,在中后添加0会使数值变大,要注意数值越界问题
*/
方法2: int a = Convert.ToInt32(字符串变量名);
()
四、字符串类型和布尔类型的相互转换
1.字符串类型转化为布尔类型
string IsGameOver="True"; //要把字符串转化为bool类型时候只能是true、True、false、False
bool a=bool.Parse(IsGameOver);//布尔类型属于值类型,转换的时候写Parse
Console.WriteLine(a);//输出的是True
2.布尔类型转化为字符串类型
注意:布尔类型在定义的时候只能写小写true 或者 false
bool IsGameOver=false;
string info=IsGameOver.ToString();
Console.WriteLine(info); //输出的是False
as 和 is 强制类型装换,具体做了什么?