0.99.. is not equal to 1
What you would mean by 0.99... is the number (?) defined as having a 9 in every decimal postion (sonething like that) effectively making it an element of S:={0,1,2,3,4,5,6,7,8,9}^N (u_0=0, u_n=9 for all n>0).
Then usually the argument goes that if such a number exists then it is equal due to having no number between it and 1 (or any other way using indirectly the continuity of R).
But in S, both are indeed not equal. Then you say, let's project it on R then they are equal and that is the trick, their (canonical) projections on R are equal, not the objects themselves.
EDIT:
Then what is wrong with projecting? You could argue that you would like to have a bijective projection, just to feel that you are indeed manipulating the same space modulo that projection.
However you would also like the order in S to be preserved (namely lexicographical order, that is the "dictionary" order where given (u_n)_n and (v_n)_n in S, you compare each u_n and v_n until you find that one is bigger than the other, e.g. 0.22222 < 0.32222) so that you also feel that when you manipulate objects in S, you keep a sense of "being close to" that can be kept via your bijective mapping in R, especially when the topic is around 0.999... being "extremely close to" 1.0000. So in that logic, 0.999 < 0.9999 < 0.99999 and so on.
But there is no mapping that can satisfy both those two property as lexicographic order allows adjacent elements: E.g. x=0.2222... < y=0.322... but no elements of S exist in between.
Proof: if a bijective mapping f such that the ordering is preserve were to exist, you would have f(x)<f(y). But since those are real, you have g=(f(x)+f(y))/2 in between and since g is real and f is bijective, you have in S, z fuch that g=f(z). But since f preserves ordering, x<z<y which is impossible.
Does this explanation satisfies you u/SouthPark_Piano?