之前我讲了一下“一张搞定数据类型”,里面谈到了数据类型的自动转换,那么为什么范围小的会自动向范围大的转换呢,今天看了传智播客苏坤老师讲的c#语言基础,讲到了这个原理,觉得顿悟了……
如图,int(表示的范围小)为何能向double(表示范围大)自动转换呢???
因为int本来表示的范围就不如double表示的大,并且int表示范围内的所有整数均包含于double范围集中,所以int向double转换时不丢失其范围,也不丢失其精度,所以才会发生自动的转换。
数据类型满足何种条件就会发生自动转换并且合法呢?(1)向比自身表示范围更大的数据类型转换(2)转换后不丢失本身的精度
double与decimal之间的转换谈一下……
double表示范围比decimal要大,但表示的精度比decimal要小,所以double不能向decimal自动转换,同理decimal也不能向double自动转换!