# Digit insertion into infinite strings behind the decimal?

bahamagreen
This is about the legitimacy of a possible operation.

Take 0.999999...

The operation is defined like this:

1) identify the insertion position with respect to the decimal.
in this example we choose "3" as in the third position, 0.999999...

2) from the insertion position, inclusive, to the right, indefinitely, divide each digit by 10.
in this example the result is 0.990999...

in this example, we add 0.009 so the result is 0.999999...

The operation might be specified by the particulars of the three steps.
In this example, the thing might look like this:

[3, 10, 0.009]->(0.999999...)=0.999999...

First question is about the validity of this operation.
Second question concerns applying the operation to numbers like this:

[2, 10, 0]->(0.001000...)=0.000100...

1) identify the insertion position
in this example we choose "2" as in the second position, 0.001000...

2) from the insertion position, inclusive, to the right, indefinitely, divide each digit by ten
in this example the result is 0.000100...

in this example, we add 0 so the result is 0.000100...

Third question is the big question... in this second example the result of repeated applications of the operation [2,10,0] to 0.001000... moves the "1" digit progressively to the right by basically inserting zeros in front of it. In thinking about things like whether 0.999...=1, is it OK to imagine operations that behave like this?

Is there a formal name for this? Does it abrogate any canonical math?

Mentor
This is about the legitimacy of a possible operation.

Take 0.999999...

The operation is defined like this:

1) identify the insertion position with respect to the decimal.
in this example we choose "3" as in the third position, 0.999999...

2) from the insertion position, inclusive, to the right, indefinitely, divide each digit by 10.
in this example the result is 0.990999...
Your example for step 2 isn't clear to me. Decimal digits, by definition, are 0 through 9. When you divide 9 by 10 you get either 0 (integer division) or .9 (floating point division). It also appears that you did whatever you're doing only to one of the digits, not "indefinitely" as you describe.
I suspect that what you wrote isn't really what you meant.
bahamagreen said:
in this example, we add 0.009 so the result is 0.999999...

The operation might be specified by the particulars of the three steps.
In this example, the thing might look like this:

[3, 10, 0.009]->(0.999999...)=0.999999...

First question is about the validity of this operation.
Second question concerns applying the operation to numbers like this:

[2, 10, 0]->(0.001000...)=0.000100...

1) identify the insertion position
in this example we choose "2" as in the second position, 0.001000...

2) from the insertion position, inclusive, to the right, indefinitely, divide each digit by ten
in this example the result is 0.000100...

in this example, we add 0 so the result is 0.000100...

Third question is the big question... in this second example the result of repeated applications of the operation [2,10,0] to 0.001000... moves the "1" digit progressively to the right by basically inserting zeros in front of it. In thinking about things like whether 0.999...=1, is it OK to imagine operations that behave like this?

Is there a formal name for this? Does it abrogate any canonical math?

Homework Helper
Gold Member
We can think of the operation as a function ##f:\mathbb N\times\{0,1,...,9\}\times\mathbb R\to \mathbb R## such that ##f(n,d,x)## is what you get when you shift the decimal tail of ##x##, starting at the ##n##th decimal place, to the right by one place and then insert ##d## in the ##n##th decimal place.

In formula:
$$f(n,d,x)=0.1\times(x-10^{-(n-1)}\lfloor 10^{n-1}x\rfloor)+10^{-n}d+10^{-(n-1)}\lfloor 10^{n-1}x\rfloor$$
where ##\lfloor y\rfloor## denotes rounding ##y## down to the nearest lower or equal integer.

The formula simplifies to:
$$f(n,d,x)=0.1x+0.9\times 10^{-(n-1)}\lfloor 10^{n-1}x\rfloor+10^{-n}d$$

Since all the operations in the formula are well-defined, so is ##f##.

The operation you discuss at the end of the OP is the function ##g:\mathbb R\to\mathbb R## defined by ##g(x)=f(2,0,x)##. Applying ##g## shifts the right-hand tail that starts with the 2nd DP one place to the right and puts a 0 in the 2nd DP. Repeating this on ##x## a number of times ##n## can be written ##g^n(x)## and shifts everything to the right of the 1st DP to the right by ##n## steps, and fills the gaps with zeros.

EDITED: original formula was wrong. It's now fixed.
EDITED 2: There was an error where I said that the tail that is shifted right starts after the nth DP. Actually it starts at the nth DP, so that the gap that's opened up for the inserted digit is at the (new) nth DP. The formulas were right. It's the words that were wrong. I've now fixed them.

Last edited:
bahamagreen
Your example for step 2 isn't clear to me. Decimal digits, by definition, are 0 through 9. When you divide 9 by 10 you get either 0 (integer division) or .9 (floating point division). It also appears that you did whatever you're doing only to one of the digits, not "indefinitely" as you describe.
I suspect that what you wrote isn't really what you meant.

The second step dividing by 10 just makes each digit "move to the right"... it is applied to each in the series toward the right.

bahamagreen
We can think of the operation as a function ##f:\mathbb N\times\{0,1,...,9\}\times\mathbb R\to \mathbb R## such that ##f(n,d,x)## is what you get when you shift the decimal tail of ##x##, beyond the ##n##th decimal place, to the right by one place and then insert ##d## in the ##n##th decimal place.

In formula:
$$f(n,d,x)=0.1\times(x-10^{-(n-1)}\lfloor 10^{n-1}x\rfloor)+10^{-n}d+10^{-(n-1)}\lfloor 10^{n-1}x\rfloor$$
where ##\lfloor y\rfloor## denotes rounding ##y## down to the nearest lower or equal integer.

The formula simplifies to:
$$f(n,d,x)=0.1x+0.9\times 10^{-(n-1)}\lfloor 10^{n-1}x\rfloor+10^{-n}d$$

Since all the operations in the formula are well-defined, so is ##f##.

The operation you discuss at the end of the OP is the function ##g:\mathbb R\to\mathbb R## defined by ##g(x)=f(2,0,x)##. Applying ##g## shifts everything to the right of the 2nd DP one place to the right and puts a 0 in the 2nd DP. Repeating this on ##x## a number of times ##n## can be written ##g^n(x)## and shifts everything to the right of the 2nd DP to the right by ##n## steps, and fills the gaps with zeros.

EDITED: original formula was wrong. It's now fixed.

Wonderful!
Where is the "y"? Is it meant to appear in the equation?
Both examples are supposed to be doing the same kind of operation; your characterizations of the two are different.
Is that just an artifact of the examples?

bahamagreen
Never mind about the "y"; I see the mirrored "L" brackets in the expansion...

Mentor
The second step dividing by 10 just makes each digit "move to the right"... it is applied to each in the series toward the right.
Then you aren't dividing each digit by 10, as you said earlier -- you're dividing the tail, the part after the affected digit, by 10, and this is happening only once.

bahamagreen
Same thing? Or am I misunderstanding? I'm still thinking about it... about the n, d, and x of f(n,d,x) being variables...

0.999999.../10 = 0.099999...

0.999999.../10 = 0.9/10 + 0.09/10 + 0.009/10 +... = 0.09 + 0.009 + 0.0009 +... = 0.099999...

Mentor
Same thing? Or am I misunderstanding? I'm still thinking about it... about the n, d, and x of f(n,d,x) being variables...

0.999999.../10 = 0.099999...

0.999999.../10 = 0.9/10 + 0.09/10 + 0.009/10 +... = 0.09 + 0.009 + 0.0009 +... = 0.099999...
In the second form, you aren't dividing each digit by 10 -- you're dividing the decimal fractions .9, .09, .009, etc. by 10. Those aren't digits.

Mentor
Going back to the question you asked in post #1...
[2, 10, 0]->(0.001000...)=0.000100...

1) identify the insertion position
in this example we choose "2" as in the second position, 0.001000...

2) from the insertion position, inclusive, to the right, indefinitely, divide each digit by ten
in this example the result is 0.000100...

in this example, we add 0 so the result is 0.000100...
This is much more complicated (and confusing) than it needs to be.
Your first two steps can be collapsed into one.
Given a number, such as 0.00100...
insert a 0 digit (or whatever other digit you like) into a specified position in that number. Done.
This is legitimate to do, as long as you specify the digit and it's position in the given number.

I don't have any idea what your step 3 "add some value" is supposed to do, other than possibly get back to the original number?
bahamagreen said:
Third question is the big question... in this second example the result of repeated applications of the operation [2,10,0] to 0.001000... moves the "1" digit progressively to the right by basically inserting zeros in front of it. In thinking about things like whether 0.999...=1, is it OK to imagine operations that behave like this?
Sure, and it's even possible to come up with a formula that does it, given a number, the digit to insert, and the position at which to insert that digit.
bahamagreen said:
Is there a formal name for this? Does it abrogate any canonical math?
No and no.

bahamagreen
OK, thanks; I see what you mean about the digits vs decimal fractions.

The over complication stems from my attempt to be "rigorous" without really understanding what is "allowed".
It is an ongoing mystery to me mathematically distinguishing between "And then of course you may do this..." and "You did what?"