string manipulation and float math problems

    longdegrees = (int)(f/100); //isolate degrees
    Serial.println(longdegrees);
    longminutes = (f - (longdegrees*100)) + atof(longit2)/10000.00;
    Serial.println(longit2);
    Serial.println(longminutes,6);
    longdecCoords = long((longminutes / 60.0)*1000000UL);
    if(EW[0] == 'W') longdegrees *= -1.0;

AFTER you extract data from longdegrees, see if long degrees has the right sign. Fix it, if not. Well, OK. Fine by me.