string manipulation and float math problems

Well I figured out where the problem is but I am not sure how to fix it. To be honest, for this application this level of precision is ridiculous but it still just bugs me that it is coming out like this. Basically, these two lines:

f = atof(longit1);
    Serial.println(f, 4);

result in the output:

7406.0000

and

f /= 100.00;
    longdegrees = (int)f; //isolate degrees
Serial.println(longdegrees);

results in

74

and

longminutes = ((f - (int)f) * 100.0);
Serial.println(longminutes,4);

results in

5.9998

which is wrong.....it should be 6.0000 based on the original value of f being 7406.0000.

Does anyone know why it may be losing .0002 on that value? I don't think I am overrunning any of my datatypes.