我试图将两个数字分开并打印答案,但编译器总是给出1.000000作为答案,我试过改变文字,但答案仍然有点相同。
这是我的代码:
#include <stdio.h>
int main()
{
float a = 20 / 12;
printf ("%f", a);
}
为什么会出现这种情况以及如何获得正确答案?
答案 0 :(得分:4)
更改
float a = 20 / 12;
到
float a = 20 / 12.f;
20 / 12
是一个整数除法。
答案 1 :(得分:4)
将float
类型的值中的至少一个进行类型转换。
float a=(float)20/12;
答案 2 :(得分:2)
如果我更改
,则执行整数除法float a = 20 / 12;
到
float a = (float) 20 / 12;
我得到了
1.666667
答案 3 :(得分:2)
你所做的是整数除法,即
float a = 20/12 ----- gives you the integer quotient.
为了得到一个浮动商,你可以像这样做
float a = 20/12.0;
or
float a = 20.0/12;