Trying another approach

0.9999...

equals

.9*(1) + .9*(.1) + .9*(.01) + .9*(.001) +...

equals

.9*(.1)**0 + .9*(.1)**1 + .9*(.1)**2 + .9*(.1)**3 +...

which is an infinite geometric series.

a geometric series has the form

ar**0 + ar**1 + ar**2 + ... + ar**(n-1)

the sum of which, for any finite n, equals a(1 - r**n) / (1 - r)

if -1 < r < 1 and we let n go to infinity, then r**n goes to 0 and the sum is

a / (1 - r)

in our .9999... case we have

a = 0.9, r = 0.1, and n => infinity

therefore the sum

.9*(.1)**0 + .9*(.1)**1 + .9*(.1)**2 + .9*(.1)**3 +...

equals

0.9 / (1 - 0.1) = 0.9/0.9 = 1

Surely that is the same as my approach, except that it is a much longer way of expressing the same idea?