Сравнение переменных типа float и double [дубликат]

Возможные дубликаты:
Разница между поплавком и двойным
странный вывод при сравнении float с литералом float

Я использую Visual C ++ 6.0 и в программе я сравниваю переменные типа float и double Например, для этой программы

#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;
 }  

Я получаю 1 0 0 в качестве вывода

и для

#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;
 }  

Я получаю 0 1 0 в качестве вывода.

Пожалуйста, скажите мне, почему я получаю эти странные выходные данные и есть ли способ предсказать эти выходные данные на том же процессоре. Также, как сравнение двух переменных в C?

Ответы на вопрос(1)

Ваш ответ на вопрос