已知char a=’a’;float b=2.3;double c=41;int d;则执行语句d=a+b+c;后变量d的数据类型为

求详解,谢谢

问法有点问题,如果问d的数据类型,肯定是int啊,因为你是这么申明的。如果问 a+b+c是什么类型,答案是double,因为double的精度在里面是最高的。值得注意的是java里(你的例子应该是java吧),小数是双精度的,比如 2.0 + 3, 结果就是double类型的。

顺便说一下,在java里 float b = 2.3; 是会报错的,因为你把一个double赋值给float,所以要么 float b = 2.3f; 要么 float b = (float)2.3;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-16
int
因为再怎么赋值再怎么变,他的申明就是int,所以他就是int类型。追问

我觉得应该是double型
我们可以很快排除A,B两个选项,字符型变量运算时是用其ASCⅡ码值,与float型数据进行运算后,结果为float型;
然后float型数据与double型数据运算,考虑到不丧失精度问题,那么运算后的数据类型就是float l了!
(我知道这个答案前后不一致,但它过程有道理吗)