Because you are doing an integer division, try with:
div = 25.0/8;
or
div = (double)25/8;
Typing 25.0
means a double literal. You could also use 25.f
for a float literal. Both of these trigger floating point division.
Pergunta
When doing a division im getting a rounded answer?
double div;
div = 25/8;
printf("%lf",div);
When i do this prints out 3.0000
why dont i get 3.125
?
Solução
Because you are doing an integer division, try with:
div = 25.0/8;
or
div = (double)25/8;
Typing 25.0
means a double literal. You could also use 25.f
for a float literal. Both of these trigger floating point division.
Outras dicas
Typecast it, i.e. change it to:
double div;
div = (double)25/(double)8;
printf("%lf",div);
Since both the numerator and denominator are integer values, division operator performs only integer division and skips fractional part for optimization purpose.
So you need to specify by typecasting or making 25 as 25.0 or 8 as 8.0 that you want fractional part as well.
Either typecast explicitly to double data type or change numerator to get desired value i.e. 25.o or use floating point literal 25.f.