登高极目 发表于 2023-10-8 20:00:37

C#学习笔记--变量类型的转换

变量类型的转化:

转换原则 同类型的大的可以装小的,小类型的装大的就需要强制转换。
隐式转换:

同种类型的转换:
//有符号long——>int——>short——>sbyte
long l = 1;
int i = 1;
short s = 1;
sbyte sb = 1;
//隐式转换 int隐式转换成了long
//可以用大范围 装小范围的 类型 (隐式转换)
l = i;
//不能够用小范围的类型去装在大范围的类型
//i = l;
l = i;
l = s;
l = sb;
i = s;
s = sb;

ulong ul = 1;
uint ui = 1;
ushort us = 1;
byte b = 1;

ul = ui;
ul = us;
ul = b;
ui = us;
ui = b;
us = b;

//浮点数decimal    double——>float
decimal de = 1.1m;
double d = 1.1;
float f = 1.1f;
//decimal这个类型 没有办法用隐式转换的形式 去存储 double和float
//de = d;
//de = f;
//float 是可以隐式转换成 double
d = f;

//特殊类型bool char string
// 他们之间 不存在隐式转换
bool bo = true;
char c = 'A';
string str = "123123";
//特殊类型bool char string
// 他们之间 不存在隐式转换不同类型的转换:
char类型可以隐式转换成数值型,根据对应的ASCII码来进行转换。
无符号的无法隐式存储有符号的,而有符号的可以存储无符号的。
显示转换


[*]括号强转(注意精度问题 范围问题)
//有符号类型
int i=1;
short s=(short)i;
//无符号类型
byte b=1;
uint ui=(uint)b;
//浮点数
float f=1.5f;
double d=1.5;
f=(float)d;
//无符号和有符号
//要保证正数 注意范围
int ui2=1;
int i2=1;
ui2=(uint)i2;
//浮点和整型
i2=(int)1.25f;
//char和数值类型
i2='A';
char c=(char)i2;
[*]Parse方法
//Parse转换
int i4=int.Parse("123");
float f4=float.Parse("12.3");
//注意类型和范围!
[*]Convert法
int a=Convert.ToInt32("12");
a=Convert.ToInt32("1.35f");//会四舍五入
a=Convert.ToInt32(true);//转为1 false转为0注意:在Convert转换中变量以Int做标准,例如 INT16 为int,ToSingle为float
ToDouble为double,ToBoolean为bool;
[*]其它类型转换为string(调用ToString方式)
string str=true.ToString();
string str2=1.5f.ToString();



来源:https://www.cnblogs.com/TonyCode/archive/2023/10/08/17749674.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: C#学习笔记--变量类型的转换