Grazie astrobeed per la spiegazione, proverò a limitare tutto in int. Nel frattempo ho provato con:
float decVal = var / 100.00;
int a = (int)decVal;
float f = (decVal - a);
int b = round(f * 100.0);
che sembra funzionare, è 'un caso' o il round potrebbe risolvere la questione?
EDIT: la fonte è questa.