我正在使用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 中如何比较两个变量?