Number precision problems

After a LOT of debugging, I finally tracked down what looks to be a bug in flash. If not a bug, then at the very least its a case of terrible documentation…

According to the Docs, the x and y values of a Sprite are of datatype Number.
However, they do not behave the same as real Numbers. They seem to lose precision very quickly.

Below is some code that illustrates the problem.
First lets test a real Number variable:

var i:int;
var n:Number = 113;
for (i=0; i< 10; i++){
n *= .5;
trace(n);
}

This produces the (correct) output:
56.5
28.25
14.125
7.0625
3.53125
1.765625
0.8828125
0.44140625
0.220703125
0.1103515625

Now lets test out the “Number” of the Sprite variable, x:
var i:int;
var s:Sprite = new Sprite();
s.x = 113;
for (i=0; i< 10; i++){
s.x *= .5;
trace(s.x);
}

This produces the (incorrect) output:
56.5
28.25
14.100000000000001
7.050000000000001
3.5
1.75
0.8500000000000001
0.4
0.2
0.1

What gives??
Why does the documentation say that Sprite.x and Sprite.y are Numbers when they clearly are not the same as the regular Number datatype?