I’ll switch to my other mode, posting things that are interesting to me, rather than aimed at thread-resurrectors:
We can easily enough make sense of decimal expansions which continue infinitely to the left rather than the right, manipulated according to all the usual rules of decimal arithmetic: these are the 10-adics [for what it’s worth, the p-adics were mentioned previously by Lumpy in this post], and in this context, we will have that …999 = -1.
Working with bidirectionally infinite decimal series is a little trickier: addition and subtraction remain straightforward, but multiplication is only straightforward for cases where one factor terminates to the left and another terminates to the right (this prevents infinitely many digit-by-digit multiplications from landing at the same digit location, as would happen with, say, …111 times 0.111…). Still, those multiplications cover a lot of ground anyway.
Note that our interpretation of bidirectoinally infinite decimals can be made to accord with various different interpretations of rightwardly infinite decimals. For example, if we wanted to preserve the intuition that 0.999… is slightly different from 1.000…, we could choose to interpret these in terms of hyper-10-adic-rational (extending the hyperrational interpretation previously noted).
On the other hand, if we wanted to preserve the cleanliness of the reasoning leading to 0.999… = 1, we could take ourselves to be working with an appropriate amalgam of the 10-adic rationals with the reals. A bidirectionally infinite series could be taken to be a pair (L, R) where L is a 10-adic rational corresponding to the digits from some point leftward and R is the real corresponding to the remaining rightward ray of digits. If we standardize on always splitting at the decimal point, this means L will be a 10-adic integer and R will be a real in [0, 0.999…].
Addition and subtraction in this presentation will be done component-wise, of course. As noted above, multiplication will be in general tricky, but will be well-defined so long as one factor terminates to the left and the other to the right. For coherence, we will need (L1, R1) to be considered equal to (L2, R2) even in some cases where the individual components are not equal; of course, the question reduces to which differences should be considered zero.
Specifically, we can get away with considering a bidirectional decimal to be zero just in case it is completely cyclic (e.g., …813813.813813…, or the aforementioned …999.999…). This is in accordance with the observation that these values are invariant under multiplication by a suitable power of 10. The nice thing is that this is the only failure of uniqueness of decimal representation we need to accommodate.
Note that in this system, negating a value amounts to simply subtracting all its digits from 9, as 0 = …999.999… . In particular (just as in the ordinary p-adics), there is no need for any explicit signs. Everything is just done in terms of digits, in a uniform way.