关于宏函数的一些问题

我觉得在下面那两个表达式中,它们的含义是一样的,但是输出的结果却不同,为什么?

img

#include

using namespace std;

#define INTEG(x) ((x)==(int)(x)?(x):((int)(x)+1))

void bugs(){
    int n=10;
    float p=1.1;

    cout<<INTEG(n*p)<INTEG(10*1.1)<int main(){
    bugs();
    system("pause");
    return 0;
}

编译环境:visual studio 2010
操作系统:windows10

img