Comparación de variables flotantes y dobles [duplicado]
Posibles duplicados:
Diferencia entre flotador y doble
salida extraña en comparación de flotante con flotante literal
Estoy usando Visual C ++ 6.0 y en un programa estoy comparando variables flotantes y dobles. Por ejemplo, para este programa
#include<stdio.h>
int main()
{
float a = 0.7f;
double b = 0.7;
printf("%d %d %d",a<b,a>b,a==b);
return 0;
}
Estoy obteniendo 1 0 0 como salida
y para
#include<stdio.h>
int main()
{
float a = 1.7f;
double b = 1.7;
printf("%d %d %d",a<b,a>b,a==b);
return 0;
}
Estoy obteniendo 0 1 0 como salida.
Dígame por qué obtengo estos resultados extraños y hay alguna forma de predecir estos resultados en el mismo procesador. Además, ¿cómo se hace la comparación de dos variables en C?