When using the number 0.9999...9999 in my code I get unpredictable behavior. Yet when I substitute 1.0 for this number everything behaves. Is there some limit I am violating?
Are you sure you do not have problems with rounding errors? Compares for equality in FP can be hit or miss.