a (binary) float is basically a representation of a number a * (2^b) (where a and b are integers), and any fraction with a denominator that is a power of 2 has a terminating decimal representation.
(any rational number can be represented "perfectly" in decimal, possibly with an infinitely repeating sequence of digits, but i assume by "perfectly" amby means "terminating")
(also any decimal that ends with infinite nines is the same as the one obtained by replacing the nines with zeros and then incrementing the digit before the first 9. eg 0.9999... = 1.0. )