Do you mean -99998.9999? -999999.9999 is much too low. I don't see any errors on -99999.9999 or -99998.9999.
I noticed this, however:
const float ASDF=-100.9999;
Trace(ASDF);
Trace(-100.9999);
That prints
-99.0001
-100.9999
That seems to support the hypothesis that it's simply dropping a digit. It only checks six characters before the decimal point, then adds everything after that.
In any case, I can probably figure out how to fix it.
Edit: Yep. Fixed.