main()
{
float a=10;
float c;
float b=5.5;
c=a+b;
printf("%d",c);
}
上述代码的输出为零。这是为什么呢?如果那是一些非常简单的 C 概念,我很抱歉,我是一个初学者。
您需要使用%f
(或%e
或%g
,取决于您的首选格式)而不是%d
浮点数。事实上,使用%d
非整数是“未定义的行为”。
printf("%f", c);
或者,如果您尝试将浮点数舍入为整数,则必须先将其强制转换。
printf("%d", (int) c);
See a+b=c
will result c to become 15.5
when you try to printf c as a decimal "%d" it will be "undefined behaviour" as Chris said.
If you do printf("%d",(int)c);
your out put will become 15 and if you printf("%f",c);
you will get 15.5