Hi to all! I want to convert a numeric degree (e.g. 10.4) in sexagesimal form (10° 24')

i do:

float numdegree=10.4;

int degree = (int) numdegree; // I obtain 10 ---OK

float minute = (numdegree-degree)*60; // (10.4 - 10) * 60. I should have 24.00 but I get 23.999977!

why? :(