C语言中各类数值型数据间的混合运算

来源:百度知道 编辑:UC知道 时间:2024/06/14 09:38:17
书里面不是这样写的吗?
数据最后转换的结果都要是double型的吗?那你看看
main()
{float a=1234.00;
int b=3,c;
c=a+b;
printf("%d\n",c);
}
它的运行结果是1237 怎么没转换成double型的 挺郁闷的 希望各位高手多多讲解 最好详细点呀
可是书里面写,各种数据类型的混合运算最后都要转换成double型呀,我就对混合运算那个 郁闷呀!所以不怎么明白

你输出是%d是整型的,当然不可能是浮点型,改成%f就行。

运算式里面只要有double的自动都转换成double的做运算,但c因为定义成int类型的了,所以c=a+b 即使a,b都是double或者float类型的,也会强制转换成int,因为c是int的。相当于 c = int(1237.00),c的类型不会变的。

即使你的c声明成float了,c的值也赋对了,但你最后printf的时候因为用的是%d,也一样会输出整数类型,因此要用%f。

简单的办法,可以直接写printf("%f",a+b);就能得到你需要的结果了,c不需要。如果一定要的话,声明成double或者float类型的。

%d是十进制整数的英文所写,不是double的英文。