Maybe it's a typo, but that is wrong. if cos() returns a value <= 0 && >= -1 and sin() returns a value <= 1 && >= 0 then angle >= 90 && <= 180.
Likewise, if..
cos() returns a value >= -1 && <= 0 and sin() returns a value <= 0 && >= -1 then angle >= 180 && <= 270.
and
cos() returns a value >= 0 && <= 1 and sin() returns a value <= -1 && >= 0 then angle >= 270 && <= 360/0.
If your facing is 180 degrees. cos should return -1, and likewise sin should return 0. (-1,0) = 180 degrees or pi radians. It seems your understanding of radians may be a little skewed. 1 radian does not equal pi. pi of what? You can't convert a unit into a unitless number. 3.14159265 radians = 180 degrees or one half turn to the left.
Note: If you're setting that integer to 180, then you are setting it to 180 radians, not 180 degrees. That is 28 full turns, then a partial turn of .6478898.
If your user is wanting to set an orientation of 180 degrees then you should do something along the lines of:
int facing = GetFacing(oPC);
float radianV = (oPC * (pi/180));