为什么 printf 不打印变量传递的浮点数?

问题描述 投票:0回答:1

原因如下:

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 并且它有效,但为什么此代码不起作用?

c floating-point integer printf
1个回答
0
投票

常量

11
2
具有类型
int
,因此将它们相除会执行整数除法,从而截断任何小数部分。

使用浮点常量来代替浮点除法。

double b = 11.0/2.0;
© www.soinside.com 2019 - 2024. All rights reserved.