SImply because we can't write out the number .999... in decimal notation does not mean we can not record it. We can simply say, let X be a representation for the real number in decimal notation which consists of infinitely repeating 9's. It's no different from saying "let X be equal to 3" or let "3" be the quantity which contains one plus one plus one objects. If you believe "3" is real, there's no reason not to believe "X" is real.
In math terms, it's easy to see that 1 - .999... = 0.
Here's how it works, we play the "epsilon" game:
Take any value for epsilon (I'll just call it e) greater than 0. e can be 1, 57, 100000000, .001, .23456789, .0000000000000001, .000000000000000000000001, ect.
Then we can define a sequence, such that a(n) = 9*(1/10^n). The nth term of a, is = .000(n-1 zeros)0000009 (nth digit is 9)
So, if we sum the first k terms of a(n), we have .9999(k 9's)9999
And obviously 1 minus .99999999(k times) = .000000001 (1 on the kth place).
So now we play the epsilion game. If you give me an epsilon, I'll give you the value of k such that 1 minus the sum from 1 to k of a(n) is smaller than your epsilon. And what you'll see, is that for any value of epsilon, no matter how small, I can give you a value for k. What this means, is that the difference between 1 and .999... is not a positive value. Distance isn't negative either, if it was negative we could just take the absolute value of it to make things easy, so the distance between .9999... and 1 must be zero.
Another easy way is to say 1/9 = .11111..., 9 *1/9 = 9*.111111... = .9999999... = 1
None.