我宣布了PI,读取了alpha,但它没有进入指令。为什么不打印0?

时间:2013-11-09 14:23:43

标签: c floating-point comparison

scanf("%lf",&alpha);

alpha = (alpha * PI)/180;

if(alpha==PI/2)

{

printf("0");

}

我还定义了PI并声明了alpha ...它只是跳过这个,如果我不知道为什么

2 个答案:

答案 0 :(得分:2)

平等和浮点数不会很好。你有舍入错误。

需要加入一些容忍度。

答案 1 :(得分:1)

#include <stdio.h>

double PI = 3.14159265359;

int main (void)
{
    double alpha = 90.0;

    scanf("%lf",&alpha);

    alpha = (alpha * PI)/180;

    if(alpha==PI/2.0)
    {
        printf("0");
    }
}

输入90并打印0。 按预期工作,你是否声明alpha为float? 然后你必须将scanf更改为“%f”以获得正确的结果。