若定义x和y为double类型

来源:百度知道 编辑:UC知道 时间:2024/07/11 09:20:43
若定义x和y为double类型,则表达式x=1,y=x+3/2的值是
主要是为什么

一般认为y是double型,所以y=3/2应该等于1.5,但实际上c在计算3/2时并不知道结果是赋给一个double型变量,而3和2都是整数型,所以3/2的实际按整除运算结果是1,
然后再赋值给y变量的. 假如表达式改成:y=3.0/2,其结果才为1.5
则表达式:x=1,y=x+3/2的值应该是最后一个表达式y=x+3/2的结果,
因y是double型,故结果不是2,而是2.0

y的值是2,
因为3/2的左值和右值都是整数,所以/是取整操作,结果为1

如果改为y=x+3.0/2,则y值为2.5,这个时候/为取商操作

2

2.5啊int double 型只是长度不同
并不影响值啊