problemas en la comparación de coma flotante [duplicado]

Esta pregunta ya tiene una respuesta aquí:

salida extraña en comparación de flotante con flotante literal 8 respuestas
void main()
{
    float f = 0.98;
    if(f <= 0.98)
        printf("hi");
    else
        printf("hello");
    getch();
}

Tengo este problema aquí. Al usar diferentes valores de coma flotante de f, obtengo resultados diferentes. ¿Por qué está pasando esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta