请教一句代码,显式转换

vel = (int)Convert.ToDouble(this.nud_vel1.Value);
说明:该行代码是我在进行读取nud空间框中数值时,提示没有对应的显式转换,经过自动纠正后,该代码行头加入了(int),编译无误。想了解下为什么要这样做呢

因为你定义的vel变量是int类型的,而Convert.ToDouble()方法返回的是double型的,double类型的数据不能直接赋值给int类型的变量,因为隐式转换只能低类型向高类型转换,double级别比int高,所以不能隐式转换,就需要显式转换一下,也就是加(int)