Once you consider prime factors, the reason for the result is easier to understand. How do you represent a prime factor of 5 in binary? How about .3333(repeat), as in the answer to 1/3? You can't, so you approximate within base 2.
Having said that, try the same thing in base 3.
There is a further argument that .999999(repeat) == 1 (easy to prove, just not liked very much by very many people), and given such a limit, you could argue just the same that .30000000000000004 == .3.