Weird *** math problem... someone help!

Ok I have the following code on a movieClip (its a circle)


onClipEvent (load) {
	q_button_main = 1;
	tarRotation = 0;
}
onClipEvent (enterFrame) {
	tarRotation = (q_button_main - 1) * 90;
	if(_rotation < 0){
		trace(_rotation);
		trace(360 - Math.abs(_rotation));
		_rotation = 360 - Math.abs(_rotation);
		trace("here");
		trace(_rotation);
	}
	_rotation += (tarRotation - _rotation)/2;
}

When q_button_main is 4, things get really weird for some reason. for the traces I get the following


-157.5
202.5 <-----
here
-157.5  <----
-143.4375
216.5625
here
-143.4375
-141.6796875
218.3203125
here
-141.6796875
...goes on and on... never stops at the angle I want it to stop at (which is 270)...

Weird part is, the two values with the arrows to them should be exactly the same. I dont know why a calculation in the trace is different from an assignment statement.

Help!
-Aditya