#include <stdio.h>
int main(int argc, const char * argv[]) {
int a = 10;
int b = 20;
double result = a / b;
printf("%d divided by %d makes %f\n", a, b, result);
return 0;
}
期待%f
将返回0.500000,我运行了代码,结果证明是0.000000。
是否有result
变量返回零值的原因?
答案 0 :(得分:10)
因为a
和b
是int
,所以它正在执行整数分割,请尝试使用
double result = (float) a / (float) b;
答案 1 :(得分:2)
您正在划分两个整数,这将提供整数结果。在C中,这意味着它将简单地丢弃小数部分,留下0。
您可以按如下方式投射一个或两个操作数(a或b),它应该清除:
double result = (float) a / b;