Why does rotating via viewport give different values than inspector rotations?

For some reason I am not understanding how/why rotating items via the viewport handles (such as a character's knee bone) works differently than entering a text value for the rotation into the inspector.

Like why do the values keep rotating to multiples of 360 and when do they reset to 0-360? i.e. why does the inspector show -1440 sometimes instead of 0?

Also see these screen shots to see what I mean about viewport vs inpector rotations? I would expect them to work the same like in other 3D apps such as LW where the text fields match exactly whether you enter a value or click and drag.

And in my examples another weird thing that the Unity IDE does, is that it changes the Y & Z values even when I have ONLY clicked on the locked X axis handle to constrain rotation via the viewport. Hopefully these screenshots show you what I am confused about. Any help is appreciated :)

step 1 step 2 step 3 step 4 step 5

(this is Unity 3.3 windows btw)

You are viewing the rotation through euler angles, or an x y z in degrees. Internally the rotation is represented through quaternions which is 4 floats (these 4 floats are not simply angles or degrees). To answer your question a 0 degree rotation is the same thing as a 360 or -360 degree rotation...meaning your model is at the same angle, at that frame. You will see equivalent values "flicker" like this is the viewport because you are viewing the internal quaternion converted to an euler angle. Rest assured knowing there is nothing broken about this and it is normal. Quaternion's solve the problem of gimbal lock which plagues euler angles.

So how do we calculate the same values the inspector shows?
For example if I have Inspector values of:
Transform.rotation.x = 160 , .y =-30, .z=0
how do I get those values in C#?

The engine should provide that in a simple manner…
I’m guessing somehow they convert 0 to 360 into -1 to +1 ???
and what is the point?