Yes, this is true. This is, in fact, a necessary feature of any positional system of representing the real numbers. Permit me to explain: suppose that we wish to invent some relation mapping real numbers onto strings of symbols selected from a finite alphabet, with the property that these strings can be lexicographically totally ordered and that this ordering correspond to the order of the real numbers (that is, if S1 and S2 are strings corresponding to real numbers R1 and R2, then S1 ≤ S2 implies R1 ≤ R2 and S1 ≥ S2 implies R1 ≥ R2). Suppose also that we wish every real number to be representable by at least one such string. We can immediately conclude two things: first, that we must allow for strings of infinite length, since the set of finite-length strings is countable and the set of reals isn't. And second, that given any pair of strings A and B such that A and B agree up to the nth position, A_n is the symbol that comes immediately after B_n, every element of A after the nth is the symbol considered lowest in the ordering, and every element of B after the nth is the symbol considered highest in the ordering, then either at least one of A or B is an invalid string, or else A and B correspond to the same real number.
Since the second conclusion may not be immediately obvious, permit me to prove it for you: suppose the contrary - that A and B correspond to real numbers a and b such that a≠b. Since the reals are dense, there exists a third number c such that a > c > b. Since every real number is mapped to at least one string, c must have some string representing it. It cannot be mapped to any string ≥ A, because that would imply that c ≥ A, which is false. Similarly, it cannot be mapped to any string ≤ B. Therefore it must be mapped to a new string C such that A > C > B. However, any string that differs from B only in positions after the nth would be strictly less than B, so this means that the nth position at least must be changed. The smallest change to this would be to have the nth position be the symbol that comes immediately after B_n, and then have every element thereafter be minimal. But this is string A, and we already established that C ≠ A. Therefore it is impossible to find C such that A > C > B, and our initial assumption, that A and B map to distinct real numbers, is false. Q.E.D.
Now, relating this to the decimal system, we can consider the decimal mapping of real numbers as the subset of strings from the alphabet {0, 1, 2, 3, 4, 5, 6, 7, 8, 9} that are infinite in both directions, such that at most finitely many of the elements in negative positions are nonzero (okay, technically this only is only a mapping of the nonnegative reals, since to indicate a negative number we must use the symbol '-' which doesn't appear in this alphabet, but that doesn't affect the basic properties of the theorem). By convention, we don't actually write any of the infinite prefix of zeros, or any of the infinite suffix of zeros where one exists, preferring instead to have the decimal simply terminate. The zero position may be considered to the the one to the immediate left of the decimal point. The decimals can represent any real number (they are designed to), and are also designed so that the order of the reals does correspond to the order of the decimal expansions (we wouldn't bother using them otherwise). Therefore, by this theorem, at least one of the following MUST be true:
a) 1.00000... is an invalid decimal expansion
b) 0.99999... is an invalid decimal expansion
c) 0.99999... = 1
a is, I think you will agree, completely absurd, since 1 was around long before we thought to make infinite decimal expansions. b is possibly sensible, although it does pose some problems for anyone attempting to find the decimal expansion of a*b by formally multiplying the decimal expansions of a and b (suppose we wished to find 9*1/9 from the decimal expansions of 9 and 1/9 respectively - quite the conundrum, as 9 * .11111... = .999999..., which wouldn't be a valid result). Therefore, mathematicians have decided that usefulness and consistency are best preserved by allowing them both to be valid decimal expansions, which means that we are forced, by the above theorem, to have .99999... equal 1. And in a similar fashion: 2.999999.... = 3, 1.482799999... = 1.4828, 754999.9999... = 755000, and so on. Every decimal expansion that terminates has another equivalent decimal expansion that ends in an infinite series of nines. And this is true in any base - for instance, in binary, 1/4 has the expansions 0.01 and 0.001111111... . Also, it can be shown that ONLY the numbers with terminating expansions have multiple decimal expansions.
You will see a lot of proofs, most of them valid, relating .9999... to 1 by a series of arithmetical operations (such as the 1*1/9 above), or perhaps by recasting them in terms of infinite series. The purpose of the above is to show you that the issue is more fundamental than that, and you really can't have anything like the decimal system without at least a few redundant expansions.
- Pascal