变量类型的转化:
转换原则 同类型的大的可以装小的,小类型的装大的就需要强制转换。
隐式转换:
同种类型的转换:
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码来进行转换。
无符号的无法隐式存储有符号的,而有符号的可以存储无符号的。
显示转换
-
括号强转(注意精度问题 范围问题)
C#//有符号类型 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方法
C#//Parse转换 int i4=int.Parse("123"); float f4=float.Parse("12.3"); //注意类型和范围!
-
Convert法
C#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();