无法计算正确的平均值

Unable to Calculate Correct Average

C语言,stdio.h库

示例代码:

float avg;
avg = 3 / 2;
printf("Average: %.2f", avg);

根据上面的代码,我期望得到以下输出:

Average = 1.50

但我得到的是:

Average = 1.00

这是为什么?我如何获得正确的输出?

你应该像这样使用它..avg=3.0/2.0否则它会做整数除法。否则它被截断为 1。 (整数除法截断,所以任何小数部分,这里 .5 被丢弃)。

常数中有小数点表示是浮点数。所以结果没有被截断。

来自标准:-§6.5.5.5

When integers are divided, the result of the / operator is the algebraic quotient with any fractional part discarded.

#include <stdio.h>

int main(void) {
float avg;
avg = (float) 3 / 2;
printf("Average: %.2f", avg);

    return 0;
}

3 和 2 是整数,所以得到的整数,即 1 将在除法后转换为浮点数,你将得到 1.00。 你必须让它们漂浮, 这样做:

avg = 3.0 / 2.0;

你在那里进行整数除法。所以舍弃小数部分。

试试这个

float avg;
avg = 3.0 / 2;
printf("Average: %.2f", avg);

通过保留 float 类型的分子或分母,它将执行浮点除法。