c部门未给出预期价值

时间:2014-03-16 04:43:32

标签: c double division

在进行分组时,我得到一个圆润的答案?

double div;
div = 25/8;
printf("%lf",div);

当我这样做时,打印出3.0000

为什么我得不到3.125

4 个答案:

答案 0 :(得分:6)

因为您正在进行整数除法,请尝试使用:

div = 25.0/8;

div = (double)25/8;

键入25.0表示双字面值。您还可以使用25.f作为浮点文字。这两个都触发了浮点除法。

答案 1 :(得分:1)

要么明确地对数据类型进行类型转换,要么更改分子以获得所需的值,即25.o或使用浮点字面值25.f。

答案 2 :(得分:0)

Typecast it,即将其更改为:

double div;
div = (double)25/(double)8;
printf("%lf",div);

答案 3 :(得分:0)

由于分子和分母都是整数值,除法运算符仅执行整数除法并跳过小数部分以进行优化。

所以你需要通过类型转换来指定,或者将25作为25.0或8作为8.0来指定你想要的小数部分。