原因如下:
int main(void)
{
double b = 11/2;
double a = 2;
printf("%lf\n", a + b);
printf("%lf\n", b);
}
分别打印 7.000000 和 5.000000
我尝试仅打印 5.5 的值,而不将其放入变量中,然后将其传递给 printf 并且它有效,但为什么此代码不起作用?
常量
11
和 2
具有类型 int
,因此将它们相除会执行整数除法,从而截断任何小数部分。
使用浮点常量来代替浮点除法。
double b = 11.0/2.0;