一个浮点型变量 X,如何判断 X 的值是否为零?

直接这样不可以判断出来x的值是否为0吗?

  float x;
  scanf("%f",&x);
  if(x==0)
    {
   printf("yes");
    }
    else 
    {
     printf("no");
    }

输入0.123456
输出no
输入0.00001
输出no
输入0.0000
输出yes 一切都很正常 不过我输入了一个a 输出的却是yes。。这让我不淡定了。。
为啥呢?输入a输出yes?a的ASCII码也不是0啊

因为浮点数有误差,对于浮点数相等的判断,一般通过两数相减取绝对值是否小于一个很小的数的方式判断。

浮点数不能直接和0比较,需要使用绝对值

因为浮点数没有绝对的0值,判断它是否为0。只能指定一个靠近0的浮点数进行比较,通过比较该值是否等于或小于比较数,进行判断。

浮点数是存在误差的,判断一般通过相减后在进行判断

浮点数不能是绝对的0值

真这么简单就怪了