关于强制和隐形类型转换的问题

int a;
double a1;
a1=(double)a/180;
//和 a1=a/180.0; 不一样吗
为什么我在做oj的时候,不做强制类型转换处理,就不能通过????

a/180.0 会先算做一个整数结果然后转换成小数加.0,结果应该还是整数,.0省掉了
(double)a/180 会把a先强转成小数,然后再去除
最好再运算之前给a赋值吧,否则会按默认值0处理

如果int a;double a1;
是定义的成员变量,两种写法都不会报错,意义是一样的,
但是如果定义的是局部变量,就会报错提示没有初始化变量,编译不通过