永发信息网

定义x,y是double型,则执行表达式x=1,y=x+3/2后,y的值为什么是2.0而不是2.5

答案:4  悬赏:50  手机版
解决时间 2021-03-30 06:57
  • 提问者网友:ミ烙印ゝ
  • 2021-03-30 01:08
定义x,y是double型,则执行表达式x=1,y=x+3/2后,y的值为什么是2.0而不是2.5
最佳答案
  • 五星知识达人网友:由着我着迷
  • 2021-03-30 01:43
因为先计算3/2,3和2都是int型,计算结果也是int型,所以3/2=1
全部回答
  • 1楼网友:空山清雨
  • 2021-03-30 04:23
需要注意的细节如下:
如果x,y定义的是double类型,那么赋值的时候 x=1是欠妥当的;
1是整型数据,赋初始值后相当于默认的强制转换为int类型了;
还有3/2类似的错误,两个整型数据做除法运算得到的还是整型;
可以转化为3.00/2 或者(double)3/2;
#include "stdlib.h"
#include "stdio.h"
void main(){
double x=1.00;
double y=0.00;
y=x+(double)3/2;
printf( "%lf", y );
}
  • 2楼网友:鱼芗
  • 2021-03-30 03:21
3/2=1不是1.5
  • 3楼网友:青灯有味
  • 2021-03-30 02:46
这不对,y肯定是2.5
^-^希望我的回答对你有帮助。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯