如何将for循环中的浮点数转换为C中的整数,以便正确计算

How to convert floating-point in for-loop to integer in C, for correct calculation

我正在努力更好地理解 C。在练习中,我必须找出以下代码示例的错误所在。

#include <stdio.h>

int main() {
    int count;
    float sum;
    float i;

    sum = 0, count = 0;
    for (i = 1000; i <= 1000.04; i += .01) {
        sum += i;
        count++;
    }
    printf("Sum: %f, Count: %d\n", sum, count);

    return 0;
}

我发现在循环中使用浮点数是个坏主意,因为它不准确会导致问题。下一步是重写代码,使其做同样的事情,但不在循环中使用浮点数。我被困在这个任务上,我不知道如何替换 i <= 1000.04。对于 i += .01 我想我可以用 i++ 替换它并在其他地方除以 100。

知道如何正确修复它吗?

#include <stdio.h>

int main() {
    int count;
    float sum;
    int i;

    sum = 0, count = 0;
    for (i = 100000; i <= 100004; i++) {
        sum += i;
        count++;
    }
    printf("Sum: %f, Count: %d\n", sum/100, count);

    return 0;
}