C语言double后计算无法取小数怎么办?

10到12行,不管输入的a,b是多少显示结果都是a/b=0.0,是为什么呢?谢谢大家耐心为小白解答!(鞠躬)

a,b 是整型, a/b 按整除考虑,所以 只要 a的绝对值小于b, 除得的结果 就是 0。
要用强制转换为 double 后计算 就能得小数:
g = (double) a / b;
或 g = (double) a / (double) b;
这里 (double) 优先。
g = (double) a / b; 等价于 g = ( (double) a) / b;
g = (double) a / (double) b; 等价于 g = ((double) a) / ((double) b) ;
double 型, 输出格式 用 %lf 或 %g 或 %f %e 等。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-08-28
a和b是整数
c语言中,整数除以整数会向下取整(忽略小数部分)
如果想取小数在11行的a和b给他们强制类型转换
相似回答