C语言,stdio.h库
示例代码:
float avg;
avg = 3 / 2;
printf("Average: %.2f", avg);
从上面的代码我希望得到以下输出:
Average = 1.50
但我得到了:
Average = 1.00
这是为什么?我如何获得正确的输出?
答案 0 :(得分:1)
3和2是整数,因此得到的整数(即1)将在除法后转换为浮点数,你将得到1.00。 你必须让它们漂浮, 这样做:
avg = 3.0 / 2.0;
答案 1 :(得分:0)
你应该像这样使用.. avg=3.0/2.0
否则就是整数除法。否则它被截断为1。 (整数除法截断,因此任何小数部分,此处.5
都被丢弃)。
常量中的小数点表示它是浮点数。所以结果不会被截断。
从标准: - §6.5.5.5
当整数被分割时,/运算符的结果是 任何小数部分丢弃的代数商。
答案 2 :(得分:0)
#include <stdio.h>
int main(void) {
float avg;
avg = (float) 3 / 2;
printf("Average: %.2f", avg);
return 0;
}
答案 3 :(得分:0)
你正在进行整数除法。所以小数部分被丢弃了。
试试这个
float avg;
avg = 3.0 / 2;
printf("Average: %.2f", avg);
通过保持float类型的分子或分母,它将执行浮点除法。