浮点数循环控制变量

浮点数循环控制变量

循环控制变量也可以是一个浮点数类型的变量。

例如汇总 1/1 ~ 1/10 的分数:

#include <stdio.h>

int main(void)
{
    double sum = 0.0;
    for(double x = 1.0; x < 11; x += 1.0)
        sum += 1.0 / x;
    printf("%lf", sum);
    return 0;
}Code language: HTML, XML (xml)

这种情况不常见。

注意,分数值通常没有浮点数形式的精确表示,所以不应该把相等判断作为结束循环的条件。

例如,下面这个循环是为了输出 0.0 到 2.0 之间的 x 值,其步长是 0.2,所以应该有 11 行输出。但是 0.2 没有浮点数形式的二进制精确表示,所以这个循环会让计算机一直执行下去。在 Windows 下面可以 Ctrl+C 停止。

#include <stdio.h>

int main(void)
{
    for(double x = 0.0; x != 2.0; x += 0.2)
        printf("%lf\n", x);
    return 0;
}Code language: PHP (php)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注