C#类型转换

数据类型

大体分为三个大类型:整型(其中又分为有符号整型、无符号整型)、浮点型、特殊类型
C#类型转换_第1张图片
注意:浮点数在初始化时要在值后加上后缀,双精度浮点数decimal的后缀为“M”、单精度浮点数double和float的后缀为“f”。

隐式转换

作用:将高精度(大范围)转为低精度(小范围)
语法:大变量名=小变量名
大类型可以装下小类型,即小类型可以转换成大类型

1.相同大类间转换

变量名参照上图数据类型

(1)有符号整型间

long->int->short->sbyte
C#类型转换_第2张图片

(2)无符号整型间

ulong->uint->ushort->byte
C#类型转换_第3张图片

(3)浮点数

double->float
特殊:decimal无法隐式转换成double和float型
C#类型转换_第4张图片

(4)特殊类型

char、bool、string之间不互转

2.不同大类间转换

(1)有符号整型->无符号整型

C#类型转换_第5张图片

注:不能同级别转,如i与ui转或sb与s转,因为在正整数范围内,ui的范围比i大,byte的范围比sbyte大(有符号整型范围是-127到127;无符号整型范围是0到256),转的话会报错:

C#类型转换_第6张图片

(2)浮点数->整型(有符号、无符号)

C#类型转换_第7张图片

特殊:decimal虽然不可隐式转换为double和float,但可转成所有整型

(3)整型(有符号、无符号)、浮点型->char

注意范围,只有部分整形才能转换成char
C#类型转换_第8张图片
注:bool与string无法隐式转换成其他类型

显式转换

1.括号强转(数值间)

作用:将高精度类型强制转换成低精度
语法:小变量名=(小变量类型)大变量名
注意:精度问题、范围问题
创建的变量名和上面一样
C#类型转换_第9张图片

一.同类型间

(1)有符号整型
C#类型转换_第10张图片

(2)无符号整型
C#类型转换_第11张图片

(3)浮点数间 (decimal不参与)
C#类型转换_第12张图片

(4)特殊类型间不可互转

二.不同类型间

(1)有符号整型<->无符号整型(只要是左小右大就行)
C#类型转换_第13张图片

(2)浮点数->整型
只会保留整数部分,不四舍五入,精度低
C#类型转换_第14张图片

(3)整形->char
C#类型转换_第15张图片

2.Parse法(将string转为其他)

作用:将字符串转成对应类型
语法:变量类型.Parse(“字符串”);,要用转换成的的变量类型的变量接收该值
注意:
①字符串必须能转成对应类型(比如肯定不能将字符串"123"转成浮点型,但可以将它转成任意整型)
②不能超范围(比如不能将字符串"100000000"转成sbyte类型,因为数据超过了sbyte类型的存储范围)

(1)转成整型

C#类型转换_第16张图片

注意被转字符串类型要与转成的类型相匹配,否则程序会出错。
比如:123.45无法转成整型
C#类型转换_第17张图片

(2)转成浮点型

C#类型转换_第18张图片
C#类型转换_第19张图片

(3)转成特殊类型

C#类型转换_第20张图片
C#类型转换_第21张图片
注:只能将字符串"true"或"false"转成bool类型,其他字符串会导致程序出错。
比如:将字符串"1"转成bool类型,程序出错
C#类型转换_第22张图片
没必要将字符转成string,更没必要把string转成string

3.Convert法(各个类型互转)

作用:更准确地转换数值(会四舍五入),转换各种类型
语法:Convert.To目标类型(变量/常量),要用目标类型的变量接收该值
C#类型转换_第23张图片

(1)其他->整型

C#类型转换_第24张图片

C#类型转换_第25张图片
总结:
1.整型间互转时,要注意转成的数需要在范围内,否则程序出错
C#类型转换_第26张图片
2.数字字符串转整型时也需要在范围内,注意字符串书写正确
C#类型转换_第27张图片

3.浮点数转整型时,会四舍五入,精度比括号强转高
4.字符转整型时,转成对应的ASCII码值
5.bool类型转整型时,true对应1,false对应0

(2)转成浮点型

C#类型转换_第28张图片
C#类型转换_第29张图片
注:
1.字符不可以转为浮点型
C#类型转换_第30张图片
2.字母字符串不可以转成浮点型
C#类型转换_第31张图片
3.bool类型的true是1,false是0

(3)转成特殊类型

C#类型转换_第32张图片
C#类型转换_第33张图片

4.其他转string

作用:拼接打印的内部原理是先将各个组成部分转换成string,再整体拼接
语法:变量/常量.ToString( );,需要用string类型的变量接收
C#类型转换_第34张图片
C#类型转换_第35张图片

你可能感兴趣的:(c#,开发语言,游戏)