浮点型数据与零比较时的问题

#include <stdio.h>
int main()
{
float a;
printf("请输入任意实数:");
scanf("%f",&a);
if(a>=0)
printf("%f的绝对值为%f\n",a,a);
else
printf("%f的绝对值为%f",a,-a);
return 0;
}
这个变量a是浮点型和零比较时可以这样吗,书上说会有错,但是课后题答案就是这个,搞不懂了

等于0会有错,这不是大于等于0吗,有什么错?