c#转换2020.7.8
隐式转换
程序语言自动转化。
从更少的位数转换为更多的位数,转换的时候精度不会丢失。
下面这张图展示了隐式转换
强制转换
(目标类型)原类型
(int)float
可能会导致精度丢失。
溢出检测上下文
checked unchecked运算符控制表达式的溢出检测上下文。表达式放在一对小括号内,并且不能时一个方法。
check(表达式)
unchecked(表达式)
显式数字转换
整数转换为整数
如果转换之后的位数不足以储存,检测会抛出一个异常。
float、double转换到整数
(1)截掉小数部分,转换为整数
(2)截掉小数,仍然储存不下,检测就会抛出异常
decimal到整数
值不在目标类型范围内,就会抛出异常。
double到float
(1)被舍弃到最接近的float
(2)如果值太小不能用float表示,值会被设置为+0或者-0
(3)值太大不呢个用用float表示,值被设置为正无穷、负无穷
is运算符
有些转换是不会成功的,可以用is运算符来做检测