判断语句为什么没用(新手求教)

判断语句执行后为什么没有作用

图片说明
图片说明

t是一个浮点数,在计算机的世界里,浮点数无法精确地等于某个数,因此判断一个浮点数等于多少的时候一般不会用==符号,而是与这个数作差,如果差在某个精度内等于0就可以认为是和这个数相等的,因此你的代码改成如下这样即可:


#include"stdio.h"
#include"math.h"

void main()
{
    double x1,y1, x2, y2,d, s, t;
    int s1;
    while(scanf("%lf,%lf %lf,%lf", &x1, &y1, &x2, &y2)!= EOF)
    {
        d = sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
        s = 0.5*d*d;
        s1 = (int)s;
        printf("d: %lf", d);
        printf("%lf\n", s);
        printf("%d\n", s1);
        t = s-s1;
        printf("%lf\n", t);
        if((t-0)<0.00000001)
            printf("%d\n", s1);
        else
            printf("%.1lf\n", s);

    }
}