0
#include<stdio.h>
#include<math.h>
int main()
{
printf("%f",3/2);
printf(" %d",3/2);
printf(" %d",3<<2);
return 0;
}
这里是我的代码,我期待得到1.50000 112为什么我在执行printf(“%f”,3/2)时得到2.168831?
但我收到2.168831 112
我的输出。
整数除法结果为整数,并截断小数部分。这写在每一个合理的好初学C教程,并在堆栈溢出至少一百个答案。做一些研究。 – 2013-10-20 09:42:44
嗨,感谢您的回复,即时通讯相当新的在这里抱歉,试图寻找它,但无法。另外,如果你可以给我一个关于它如何工作的细分......因为在我的脑海里它(int)3/2 =(int)1,然后浮点值应该是1.000000 –
什么使你相信它**应该是1.000? 'printf()'不是魔术。它完全知道你所传递的表达式的类型(这就是为什么你必须使用格式化字符串)。这不是魔术。但阅读接受的答案,你会知道。 – 2013-10-20 09:54:56