显示转换:
如图所示,
![](https://i-blog.csdnimg.cn/blog_migrate/24d81dea37a3fa805dc9dd69899f4e7d.jpeg)
1) 将 decimal 值转换为整型时,将舍弃小数点后的部分;如果该结果超出目标类型的范围,则会引发 OverflowException异常。
2) 将double或者float值转换为整型时,将舍弃小数点后的部分;如果该结果超出目标类型的范围,并且使用checked检查,将引发OverflowException异常;如果该结果超出目标类型的范围,并且使用unchecked检查,将会得到一个错误的值。
3) 将 decimal 转换为 float 或 double 时,decimal 值将按照 double 或 float四舍五入取值。
隐式:
如图,
![](https://i-blog.csdnimg.cn/blog_migrate/6050bdaa2dffe0f063e6ae2c65a58c8b.jpeg)
1) 从 int、uint 或 long 到 float 的转换以及从 long 到 double 的转换的精度可能会降低,但数值大小不受影响。
2) 不存在到 char 类型的隐式转换,不存在浮点型与 decimal 类型之间的隐式转换。
2) 不存在到 char 类型的隐式转换,不存在浮点型与 decimal 类型之间的隐式转换。
例如,int i=125;double d=i;
转载于:https://blog.51cto.com/hnpywhq/353189