Comparação de variáveis float e double [duplicate]
Possíveis duplicatas:
Diferença entre float e double
saída estranha em comparação de float com float literal
Estou usando o Visual C ++ 6.0 e em um programa estou comparando variáveis float e double Por exemplo, 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;
}
Estou recebendo 1 0 0 como saída
e 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;
}
Estou recebendo 0 1 0 como saída.
Por favor, diga-me por que estou obtendo essas saídas estranhas e há alguma maneira de prever essas saídas no mesmo processador. Também como é feita a comparação de duas variáveis em C?