Il codice restituisce 1 ma ho provato con Visual C.

Probabilmente tu stai utilizzando un altro compilatore (forse DevCpp ...) ... in questo caso, prova


int1=(int)a;
double x1=a*100.0;
double x2=int1*100.0;
b=(int)(x1-x2);