Opacity/Alpha Decreases faster than Increases

This is kind of an odd problem. I’m working on a project for the Blue Circles contest and I have the following code in one section:

if (c._x > midX) {
c._alpha += opacityRate;
} else {
c._alpha -= opacityRate;

midX = the middle of the screen
opacityRate = 1 (for now)

Anyway, the circles move across the screen, back and forth. On one side of the screen they have increasing ._alpha and on the other they have a decreasing ._alpha. After, a few full movements across the screen (10 or so), it is visible that the overall ._alpha is constantly going lower. I have also used trace(c._alpha); to check the values. The values go into the negatives more and more each rotation. Is this just a thing that Flash does, or am I going insane?
EDIT: I just realized I forgot to specify that this is the only place in my program where I do anything with or manipulate the ._alpha property.

Thank you,