Try these commands-
By default xxxx.xxx are treated as double in c/c++. when you save as float it is saved as 99999984.0
Due to small size of float. which often results in round off of floats.
Round off section. As 99999980.0 is large number it is saved as 99999984.0 when stored in float data type.
And hence the reason for wrong input.
This is also the reason why using == operations with floats/double is not considered as safe.