Horrible code
You can just type 60.0 instead of 60 if you want the number to be a double... 60.0f if you want it to be a float. No need to cast everything everywhere... And as far as I know, acos takes doubles as input, so that float cast is useless as well.
As for acos, it obviously works in radians.... You might want to code two helper functions like these to make your code clearer:
float DegToRad(float a) { return a * 0.0174533f; }
float RadToDeg(float a) { return a * 57.2958f; }