【C#】类型转换

目录

一、类型转换

二、隐式转换

1、相同大类型之间的转换

有符号

 无符号

浮点数

特殊类型

2、不同大类型之间的转换

有符号装无符号

浮点型装整型(有符号和无符号)

3、特殊类型和其他类型之间转换

bool

string

​编辑

char

4、总结

5、练习题

三、显示转换

1、括号强转法(高精度大范围转成低精度小范围)

有符号整型

无符号整型

浮点之间

有符号和无符号之间

浮点和整型之间

char和数值类型之间

bool和string

总结

2、Parse法(字符串转成对应类型)

3、Convert法(大乱斗,各种各样的类型相互转换)

14种变量类型的Convert写法(记)

4、其他所有类型转string

四、用一张图做简单的大总结


一、类型转换

指不同变量类型之间的转换(int,short等等)

包括隐式转换显式转换

二、隐式转换

隐式转换就是不同变量类型之间自动转换

遵循规则:大范围装小范围(大碗装小碗)

例如,若  变量类型A  的范围涵盖了  变量类型B  的范围,则A=B,A装B,A能隐式存储B,B能隐式转化成A

类比数学的区间或集合

1、相同大类型之间的转换

有符号

 无符号

浮点数

特殊类型

2、不同大类型之间的转换

有符号装无符号

A=B,想知道A到底能不能装B,就先思考一下B有没有可能大过A,要是有可能,就不能装

总结:有符号变量可以装无符号变量,前提是有符号的范围必须涵盖无符号的范围

浮点型装整型(有符号和无符号)

也可以理解为 浮点数 能存的整数范围 比 整型大得多,理解如下图

整型不能隐式存储浮点型,因为整数不能存小数

3、特殊类型和其他类型之间转换

bool

string

char

char隐式转换成数值类型(整型,浮点型)时,对应的数字,其实是一个ASCII码

图中的65,就是字符"A"对应的ASCII值

可以发现,隐式转换有点类似于赋值

4、总结

5、练习题

int的ASCII码最多能达到21亿,short最多3万左右,有超过范围的风险,所以这里用int隐式存储会好一点

三、显示转换

隐式转换中有些类型间不能自动转换,这个时候需要我们手动去强制转换,这就是显示转换

1、括号强转法(高精度大范围转成低精度小范围)

有符号整型

无符号整型

无符号整型其实和刚刚的有符号整型规律一样,下面给两个例子

浮点之间

另外decimal就不讨论了,因为它太不常用了

浮点之间有效数字范围超了,影响不大。因为这是精度丢失问题,本来double精度很高,转化为float后就丢失精度了。浮点型注意精度问题,整型注意范围问题

有符号和无符号之间

转是可以转出来,只是出来的数不是我们想要的数而已

所以有符号型的负数不能强转为无符号型,要注意范围,否则会出来一个混乱的数

浮点和整型之间

char和数值类型之间

bool和string

bool和string是不存在括号强转的,也不存在隐式转换

总结

其实括号强转就有点像是隐式转换逆过去的过程,两者是互补的,只是要注意范围问题,精度问题

例如变量类型A=(变量类型)B

如果B的范围超过了括号里变量类型的范围,那么A得到的数就会发生异常

如果B的精度高于括号里变量类型的精度,那么A得到的数的精度就会丢失,若是浮点型间的转换,则会四舍五入,若是浮点型转化为整型,则只会保留整数部分,不四舍五入

2、Parse法(字符串转成对应类型)

学了括号强转法,我们仍不能在字符和数值间进行转换,这个时候就要用到parse法

parse法能把字符串型转换为对应类型,也就是用对应类型装字符串

值的范围,必须是变量能存储的范围,否则报错

3、Convert法(大乱斗,各种各样的类型相互转换)

Convert比强转聪明点(手动滑稽),不过强转的直接取整在一些地方也是很方便的

Convert法可以让各种各样的类型相互转换,下面再举一个特殊例子,bool型转换位整型

14种变量类型的Convert写法(记)

其实要记的就只有红框内的部分,其他的都比较有规律

注意float那条代码中的Single指的是单精度

4、其他所有类型转string

注意,红框内的bool类型也转成string型了

四、用一张图做简单的大总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值