竹逸 发表于 2022-8-6 22:40:50

为啥输出的结果是0



如图,结果不应该是1.500000吗

ba21 发表于 2022-8-6 22:46:02

自动转整。

浮点
3.0 /2

3/2.0

竹逸 发表于 2022-8-6 22:56:24

ba21 发表于 2022-8-6 22:46
自动转整。

浮点


那为啥不是1

ba21 发表于 2022-8-6 23:13:29

竹逸 发表于 2022-8-6 22:56
那为啥不是1

printf("%f\n", 1);
printf("%f\n", 3);
你看看结果,那是printf的功能。

https://www.zhihu.com/question/496640195

https://blog.csdn.net/aa838260772/article/details/39496017

竹逸 发表于 2022-8-6 23:37:45

ba21 发表于 2022-8-6 23:13
printf("%f\n", 1);
printf("%f\n", 3);
你看看结果,那是printf的功能。


看的稀里糊涂的{:10_266:}

临时号 发表于 2022-8-7 00:32:15

竹逸 发表于 2022-8-6 23:37
看的稀里糊涂的

在C语言中,整数除以整数值一定为整数
所以,在你的代码中3 / 2的值是1
而%f是浮点数类型的格式化符号,而1是一个整数,所以%f读不到1,自然输出了0
所以你的程序应改为
#include <stdio.h>

int main()
{
    printf("3 /2 = %f\n", 3.0 / 2);
    return 0;
}
页: [1]
查看完整版本: 为啥输出的结果是0