🍟数据类型
大体分为三个大类型:整型(其中又分为有符号整型、无符号整型)、浮点型、特殊类型
注意:浮点数在初始化时要在值后加上后缀,双精度浮点数decimal的后缀为“M”、单精度浮点数double和float的后缀为“f”。
🍟隐式转换
作用:将高精度(大范围)转为低精度(小范围)
语法:大变量名=小变量名
大类型可以装下小类型,即小类型可以转换成大类型
🌭1.相同大类间转换
变量名参照上图数据类型
🥓(1)有符号整型间
long->int->short->sbyte
🥓(2)无符号整型间
ulong->uint->ushort->byte
🥓(3)浮点数
double->float
特殊:decimal无法隐式转换成double和float型
🥓(4)特殊类型
char、bool、string之间不互转
🌭2.不同大类间转换
🥓(1)有符号整型->无符号整型
注:不能同级别转,如i与ui转或sb与s转,因为在正整数范围内,ui的范围比i大,byte的范围比sbyte大(有符号整型范围是-127到127;无符号整型范围是0到256),转的话会报错:
🥓(2)浮点数->整型(有符号、无符号)
特殊:decimal虽然不可隐式转换为double和float,但可转成所有整型
🥓(3)整型(有符号、无符号)、浮点型->char
注意范围,只有部分整形才能转换成char
注:bool与string无法隐式转换成其他类型
🍟显式转换
🌭1.括号强转(数值间)
作用:将高精度类型强制转换成低精度
语法:小变量名=(小变量类型)大变量名
注意:精度问题、范围问题
👻创建的变量名和上面一样
🥓一.同类型间
(1)有符号整型
(2)无符号整型
(3)浮点数间 (decimal不参与)
(4)特殊类型间不可互转
🥓二.不同类型间
(1)有符号整型<->无符号整型(只要是左小右大就行)
(2)浮点数->整型
只会保留整数部分,不四舍五入,精度低
(3)整形->char
🌭2.Parse法(将string转为其他)
作用:将字符串转成对应类型
语法:变量类型.Parse(“字符串”);,要用转换成的的变量类型的变量接收该值
🌈注意:
①字符串必须能转成对应类型(比如肯定不能将字符串"123"转成浮点型,但可以将它转成任意整型)
②不能超范围(比如不能将字符串"100000000"转成sbyte类型,因为数据超过了sbyte类型的存储范围)
🥓(1)转成整型
🌈注意被转字符串类型要与转成的类型相匹配,否则程序会出错。
比如:123.45无法转成整型
🥓(2)转成浮点型
🥓(3)转成特殊类型
🌈注:只能将字符串"true"或"false"转成bool类型,其他字符串会导致程序出错。
比如:将字符串"1"转成bool类型,程序出错
没必要将字符转成string,更没必要把string转成string
🌭3.Convert法(各个类型互转)
作用:更准确地转换数值(会四舍五入),转换各种类型
语法:Convert.To目标类型(变量/常量),要用目标类型的变量接收该值
🥓(1)其他->整型
👻总结:
1.整型间互转时,要注意转成的数需要在范围内,否则程序出错
2.数字字符串转整型时也需要在范围内,注意字符串书写正确
3.浮点数转整型时,会四舍五入,精度比括号强转高
4.字符转整型时,转成对应的ASCII码值
5.bool类型转整型时,true对应1,false对应0
🥓(2)转成浮点型
注:
1.字符不可以转为浮点型
2.字母字符串不可以转成浮点型
3.bool类型的true是1,false是0
🥓(3)转成特殊类型
🌭4.其他转string
作用:拼接打印的内部原理是先将各个组成部分转换成string,再整体拼接
语法:变量/常量.ToString( );,需要用string类型的变量接收