2 u011367866 u011367866 于 2013.12.12 16:28 提问

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

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

2个回答

houhaipeng1992
houhaipeng1992   2013.12.12 22:42

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

cheng43526899
cheng43526899   2013.12.16 11:47

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!