parseFloat("-999999999999999.9991") returns -1000000000000000
and when debuging
(-1000000000000000 == -999999999999999.999) condition is true.
Operations with float data type have limited precision and they often introduce errors when rounding numbers like your case.