I also wanted to add that OpenGL likes float32 because it has usually enough precision to correctly position any object, you wouldn't spot a difference at all if you go through a 3d world and have 6-7 digits of precision vs 15.
and more importantly, you save your 3D objects in a vertex array, which is an array of 3 rgb floats, 3 position floats and also potentially 2 vertex coord floats. so 3 + 3 + 2 = 8 floats, so 64 bytes per vertex. if you go double, you double the required memory, which could be a huge factor.