在进行分组时,我得到一个圆润的答案?
double div;
div = 25/8;
printf("%lf",div);
当我这样做时,打印出3.0000
为什么我得不到3.125
?
答案 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来指定你想要的小数部分。