【发布时间】:2014-09-16 18:21:51
【问题描述】:
我正在尝试将两个数字相除并打印答案,但编译器始终给出 1.000000 作为答案,我尝试更改文字但答案仍然相同。
这是我的代码:
#include <stdio.h>
int main()
{
float a = 20 / 12;
printf ("%f", a);
}
任何想法为什么会发生这种情况以及如何获得正确答案?
【问题讨论】:
-
因为你做了整数除法。
-
你需要了解隐式和显式类型转换。只有这样,您才会明白为什么会发生这种情况。试着做 20/12.0 看看有什么不同
-
20/12 = 1 和 8/12... 在 C 20/12 中是 1,并且 20 % 12 = 8
标签: c floating-point printf