Сравнение переменных типа 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?