Seems like what's happening is that the decimal part is being added, rather than subtracted, by the compiler?
While -5.0 compiles to -5.0, -4.9 instead compiles to -3.1. (So it's -4 + 0.9 instead of -4 - 0.9.)
So if what you want really want is a const float of -4.9, you need ask for -5.1 instead.