类型转换之显式转换

显式转换——>手动处理,强制转换

括号强转

作用:一般情况下,将高精度的类型转换为低精度。
语法:变量类型 变量名 = (变量类型)变量;
注意:精度问题,范围问题。
括号强转,可能会出现范围问题,造成的异常。
附上代码:

//相同大类的整形
//有符号整形
sbyte sb = 1;
short s = 1;
int i = 1;
long l = 1;

s = (short)i;
Console.WriteLine(s);

i = (int)l;
sb = (sbyte)s;
sb = (sbyte)i;
sb = (sbyte)l;

//无符号整形
byte b = 1;
uint ui = 1;
b = (byte)ui;

//浮点之间
float f = 1.1f;
double d = 1.23456;

f = (float)d;
Console.WriteLine(f);

//无符号和有符号
uint ui2 = 1;
int i2 = 1;
//在强转时,一定要注意范围,不然得到的结果,可能有异常
ui2 = (uint)i2;
Console.WriteLine(ui2);

i2 = (int)ui2;

//浮点和整形,浮点数强转成整形时,会直接抛弃掉小数点后面的小数
i2 = (int)1.64f;
Console.WriteLine(i2);

//char和数值类型
i2 = 'A';

char c = (char)i2;
Console.WriteLine(c);

//bool和string是不能够通过括号强转的

//bool bo = false;
//int i3 = (bool)bo;

//string str = "123";
//i3 = (int)str;

Parse法

作用:把字符串类型转换为对应的类型
语法:变量类型.Parse(“字符串”)
注意:字符串必须能够转换成对应类型,否则报错。
附上代码;

//有符号
//string str2 = "123";
int i4 = int.Parse("123");
Console.WriteLine(i4);
//我们填写字符串,必须是要能够转成对应类型的字符,如果不符合规则,会报错
//i4 = int.Parse("123.45");//err
//Console.WriteLine(i4);
//值的范围,必须是能够被变量存储的值,否则报错
//short s3 = short.Parse("40000");//err
//Console.WriteLine(s3);

sbyte sb3 = sbyte.Parse("1");
Console.WriteLine(sb3);
//它们的意思是相同的
Console.WriteLine(sbyte.Parse("1"));
Console.WriteLine(long.Parse("123123"));

//无符号
Console.WriteLine(byte.Parse("1"));
Console.WriteLine(ushort.Parse("1"));
Console.WriteLine(ulong.Parse("1"));
Console.WriteLine(uint.Parse("1"));

//浮点数
float f3 = float.Parse("1.2345");
double d3 = double.Parse("1.2312");

//特殊类型
bool b5 = bool.Parse("true");
Console.WriteLine(b5);

char c2 = char.Parse("A");
Console.WriteLine(c2);

Convert法

作用:更准确的将各个类型之间进行相互转换。
语法:Convert.To目标类型(变量或常量)
注意:填写的变量或常量必须正确,否则出错。
附上代码:

//转字符串,如果是把字符串转成对应类型,那字符一定要合法合规。
int a = Convert.ToInt32("12");
Console.WriteLine(a);

//精度更准确
//精度比括号强转好一点,会四舍五入
a = Convert.ToInt32(1.45845f);
Console.WriteLine(a);

//特殊类型转换
//把bool类型也可以转换成数值类型,true对应1,false对应0
a = Convert.ToInt32(true);
Console.WriteLine(a);
Console.WriteLine(Convert.ToInt32(false));

a = Convert.ToInt32('A');
Console.WriteLine(a);

//每一个类型都存在对应的Convert中的方法
sbyte sb5 = Convert.ToSByte("1");
short s5 = Convert.ToInt16("1");
int i5 = Convert.ToInt32("1");
long l5 = Convert.ToInt64("1");

byte b6 = Convert.ToByte("1");
ushort us5 = Convert.ToUInt16("1");
uint ui5 = Convert.ToUInt32("1");
ulong ul5 = Convert.ToUInt64("1");

float f5 = Convert.ToSingle("13.2");
double d5 = Convert.ToDouble("13.2");
decimal de5 = Convert.ToDecimal("13.2");

bool bo5 = Convert.ToBoolean("true");
char c5 = Convert.ToChar("A");

string str5 = Convert.ToString(123123);

其他类型转string

作用:拼接打印
语法:变量.string();
附上代码:

string str6 = 1.ToString();
str6 = true.ToString();
str6 = 'A'.ToString();
str6 = 1.2f.ToString();

int aa = 1;
str5 = aa.ToString();
bool bo6 = true;
str6 = bo6.ToString();

//当我们进行字符串拼接时,就会自动调用tostring转成string
Console.WriteLine("123" + 1 + true);

str6 = "123456" + true + 1.23f;
  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不背完3500个考研英语词汇不改名

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值