求教一道c语言:main() {float d=2.2; int x,y; x=6.2; y=(x+3.8)/5.0; printf("%d\n",d*y);} 输出结果?我觉的结果是2,首先x=2,y=1,那么实行按整形输出是强制转换,输出2.但是结果一运行发现结果是0,这是怎么回事?
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/07 22:33:27
求教一道c语言:main() {float d=2.2; int x,y; x=6.2; y=(x+3.8)/5.0; printf("%d\n",d*y);} 输出结果?我觉的结果是2,首先x=2,y=1,那么实行按整形输出是强制转换,输出2.但是结果一运行发现结果是0,这是怎么回事?
求教一道c语言:main() {float d=2.2; int x,y; x=6.2; y=(x+3.8)/5.0; printf("%d\n",d*y);} 输出结果?
我觉的结果是2,首先x=2,y=1,那么实行按整形输出是强制转换,输出2.
但是结果一运行发现结果是0,这是怎么回事?
求教一道c语言:main() {float d=2.2; int x,y; x=6.2; y=(x+3.8)/5.0; printf("%d\n",d*y);} 输出结果?我觉的结果是2,首先x=2,y=1,那么实行按整形输出是强制转换,输出2.但是结果一运行发现结果是0,这是怎么回事?
如果你改成printf("%f\n",d*y)结果是2.200000
改成printf("%d\n",(int)(d*y))结果就是2
这是因为int可以顺利的转换成float,但是float要顺利转换成int,必须要强制转换,(int)(d*y)
如果float d = 2.2; printf("%d",d);结果还是0.
希望能帮到你~!