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

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

suannai0314
鹳狸媛 楼主的这个问题解决了么?下边的答案能解决问题么?如果可以麻烦点击答案旁的√采纳哦~如果没有也可以将自己的答案贴上然后进行采纳的。
大约 6 年之前 回复

2个回答

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

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问