The classic Flash API uses an odd coordinate system. Everything is recorded in 1/20ths of a pixel (there is a name for these measurements but I can’t remember what – edit: just remembered they are twips)
In theory what you are doing should work within that coordinate system, but there is clearly a rounding error somewhere. And as it’s rounding to the nearest 1/20 of a pixel it’s out by 0.05.
You could ignore it. 0.05 pixels is not likely to be noticeable. Though if you continue doing it the error could accumulate more.
A better way is do all your calculations separately. So you have your own x and do x += 2 every frame. Then set the sprite.x to your x. This should give you the result you expect, and it should be marginally more efficient.
Or even switch to using Stage3D and Starling. That uses Float internally.