在C#中数据类型可分为四大类型:
- 有符号整型变量:sbyte、short、int、long;
- 无符号整型变量:byte、ushort、uint、ulong;
- 浮点型(带小数点):float、double、decimal;
- 特殊类型:bool、char、string;
类型转换:就是不同变量类型之间的相互转换。
隐式转换:不同变量间的自动转换
1、相同大类型之间的转换——小范围转大范围 (不能大范围转小范围):
- 有符号型:sbyte->short->int->
- 无符号型:byte->ushort->uint->ulong
- 浮点型:float->double(decimal不能进行转换)
- 特殊类型:之间不存在隐式转换
2、不同大类型之间的转换:
- 无符号和有符号间的转换:有符号的变量是不能隐式转无符号的,无符号的变量是可以转有符号的,前提是范围一定要覆盖;
- 浮点型和整形间的转换:float和double不能隐式的转换为decimal,但整形可以隐式的转换为decimal(所有整形->decimal);所有整形->float->double;
- 特殊类型和其他类型间的转换: bool类型不可以和其他类型进行相互的隐式转换;其他类型不可以隐式转换为char类型,char类型可以隐式的转换为整形和浮点型;string类型不可以和其它类型进行相互的隐式转换。
隐式转换的规则:低精度(小范围)转高精度(大范围)
char->整形(无符号、有符号)->float->double
char->整形(有符号、无符号)->decimal
bool和string不参与隐式转换规则
显示转换:手动处理,强制转换
括号强转:一般情况下将高精度类型转换为低精度类型(不会四舍五入)
- 语法:变量类型 变量名=(变量类型)变量;
- 注意:bool和string不能强转
Parse法:把字符串转换为对应的类型
- 语法:变量类型 变量名=变量类型.Parse(“字符串”);
- 注意:字符串必须能够转换成对应的类型,否则报错
- 一般这样使用:int value=int.Parse(Console.ReadLine());
Convert法:更能准确地将各个类型之间进行相互转换(会四舍五入)
- 语法:变量类型 变量名=Convert.To目标类型(变量或常量)
- 注意:填写的变量或常量必须正确,否则出错
其它类型转string:拼接打印
- 语法:string str=变量.toString();
- 注意:当我们进行字符串拼接时,就会调用tostring转换为string