If you already agree that 0.999\dots = 1 because \tfrac{1}{3} = 0.333\dots and 3 \times \tfrac{1}{3} = 1, good. But there is a sharper way of seeing it — one that does not rely on any algebraic trick. You can trap the number 0.999\dots inside a shrinking sequence of closed intervals, watch the intervals collapse to a single point, and read that point off the number line. The point is 1. There is no other possibility.

This satellite is the nested-intervals framing. For the slider-and-gap framing — choose how many 9s and read the exact residual gap 10^{-n} — see 0.999… vs 1: Watch the Gap Shrink Digit by Digit.

Play the zoom

Each zoom level shows one closed interval. Level 1 is [0.9,\,1]. Level 2 is [0.99,\,1]. Level 3 is [0.999,\,1]. The right endpoint is always 1. The left endpoint creeps rightward by a factor of 10 at every step, so the interval's width — a tenth, then a hundredth, then a thousandth — shrinks geometrically. The figure lets you step through levels and see the interval width collapse toward zero.

Interval $I_n = [1 - 10^{-n},\ 1]$. The right endpoint stays pinned at $1$; the left endpoint marches rightward. At every level, the red cross-hair marks $1$ — it is inside every interval. The width shrinks by a factor of $10$ per level.

At level 1 the interval is a tenth of a unit wide. At level 5 it is a hundred-thousandth. At level 15 it is a quadrillionth. Every time you step the slider up, you zoom inside the previous interval — the shaded strip on each row shows which slice the next level picks out. The sequence of intervals is nested:

I_1 \supset I_2 \supset I_3 \supset \cdots, \quad I_n = [1 - 10^{-n},\, 1].

Two things are simultaneously true about every level: (i) 1 is the right endpoint of I_n, so 1 \in I_n; (ii) the width of I_n is 10^{-n}, which you can drive below any positive tolerance by choosing n large enough. The combination of "1 is inside" and "the interval can be made arbitrarily narrow" is exactly what pins the intersection down to a single point.

The nested-intervals principle

Here is the theorem the figure is illustrating, stated cleanly.

Nested Intervals Theorem

Let I_1 \supseteq I_2 \supseteq I_3 \supseteq \cdots be a sequence of closed bounded intervals I_n = [a_n, b_n] in \mathbb{R}, with each I_{n+1} contained in I_n. Then their intersection

\bigcap_{n=1}^{\infty} I_n

is non-empty — there is at least one real number that belongs to every I_n. If, in addition, the widths b_n - a_n shrink to 0, the intersection contains exactly one point.

The "non-empty" half is a direct consequence of completeness — the least-upper-bound property. The left endpoints a_1 \le a_2 \le a_3 \le \cdots form a bounded-above increasing sequence (every b_k is an upper bound). Their supremum \alpha exists as a real number. A symmetric argument gives an infimum \beta of the right endpoints. Both \alpha and \beta lie in every I_n, so the intersection contains [\alpha, \beta] — non-empty.

The "exactly one point" half uses the shrinking-width assumption. If the widths b_n - a_n \to 0, then \beta - \alpha \le b_n - a_n for every n, which forces \beta - \alpha = 0. So \alpha = \beta, and the intersection is the single point \{\alpha\}.

Apply the theorem to our sequence I_n = [1 - 10^{-n},\, 1]. Every interval contains 1, so 1 \in \bigcap I_n. The widths 10^{-n} shrink to 0 (by the Archimedean property — pick any tolerance \varepsilon > 0 and n with 10^n > 1/\varepsilon). So the intersection is a single point. The single point is 1.

Why this is a proof that 0.999… = 1

Here is the sleight of hand students most often miss. The symbol 0.999\dots is not a computation you do from left to right, stopping at some unspecified final 9. It is a limit — by definition:

0.999\dots \;:=\; \lim_{n \to \infty} 0.\underbrace{99\dots9}_{n} \;=\; \lim_{n \to \infty} \left(1 - 10^{-n}\right).

Why: a non-terminating decimal is shorthand for a limit of its finite truncations. That is the only coherent meaning — you cannot "write down all the 9s" and then stop; the expression is a description of where the truncations are heading.

And the truncations 1 - 10^{-n} are exactly the left endpoints of our nested intervals. Each truncation is the left endpoint of some I_n. As n \to \infty, these left endpoints march rightward, and the nested-intervals theorem says where they march to — the sole point common to every I_n, which is 1.

So 0.999\dots = \lim(1 - 10^{-n}) = 1. Not "approximately." Not "in the limit, up to an infinitesimal." Exactly 1. The nested-intervals construction leaves no wiggle room for any other answer.

What if 0.999… were some number $x < 1$?

Suppose, for contradiction, 0.999\dots = x for some x < 1. Let \varepsilon = 1 - x > 0. Pick n large enough that 10^{-n} < \varepsilon; the Archimedean property guarantees such n. Then

1 - 10^{-n} > 1 - \varepsilon = x.

But 1 - 10^{-n} is the n-th truncation 0.\underbrace{99\dots9}_{n}, which is less than 0.999\dots = x (you are chopping off positive-contribution digits). Contradiction: a truncation cannot be both less than x and greater than x. So no x < 1 works, and 0.999\dots = 1 is forced.

Closed is the key word

The theorem requires closed intervals. If you replace I_n = [1 - 10^{-n}, 1] with the open intervals J_n = (1 - 10^{-n},\, 1) — dropping the endpoint at 1 — the conclusion breaks spectacularly. The intersection \bigcap J_n is empty: 1 is no longer inside any J_n, and every point y < 1 eventually falls outside once 10^{-n} < 1 - y.

Why: closedness is what lets the endpoint survive to the limit. Open intervals can shrink to nothing. Closed ones cannot — their endpoints accumulate at a real number.

The same issue breaks the theorem if you drop the boundedness assumption — \mathbb{R} itself is an unbounded closed interval and intersecting \mathbb{R} \supset \mathbb{R} \supset \cdots tells you nothing. The hypotheses are exactly what they need to be.

Comparison: finite truncation vs the limit

Think of the slider you just played with. Every position of the slider — n = 1, 2, 3, \dots, 15 — sits on a row showing a closed interval whose left endpoint is a finite decimal. None of those rows shows 0.999\dots. They show 0.9, 0.99, 0.999, \dots — all finite, all strictly less than 1, all separated from 1 by a width you can read off the figure. The symbol 0.999\dots does not live on any single row. It lives at the intersection point the rows are collapsing onto.

This distinction resolves the most common confusion about 0.999\dots = 1. Students reason: "for any n, 0.\underbrace{99\dots9}_{n} < 1, so by continuity 0.999\dots < 1 too." That step is wrong — continuity does not preserve strict inequalities under limits. The sequence 1/n is strictly positive for every n, yet its limit 0 is not strictly positive. Likewise, 1 - 10^{-n} is strictly less than 1 for every finite n, yet its limit is equal to 1, not less than it.

Why completeness matters here

The nested-intervals theorem is a direct consequence of completeness. If you tried the same construction in the rationals \mathbb{Q} — where completeness fails — it would sometimes collapse to an empty intersection. For example, nest the intervals around \sqrt{2}: J_n = [q_n, q_n'] \cap \mathbb{Q} where q_n, q_n' are rational approximations to \sqrt{2} with q_n' - q_n \to 0. In \mathbb{R} the intersection is \{\sqrt{2}\}; in \mathbb{Q} it is empty, because the point the intervals are converging to is not rational. The real-number system is precisely the system where this pathology cannot happen — nested closed bounded intervals with shrinking widths always pick out a real number, and that is the number the decimal expansion names.

So 0.999\dots = 1 is not a quirk of notation. It is the number line announcing that it has no gaps: the intervals [1 - 10^{-n}, 1] cannot shrink to nothing, cannot shrink to two points, and cannot shrink to some mysterious number just-shy-of-1. They shrink to the one real number they all contain. That number is 1.

This satellite orbits Real Numbers — Properties (the nested-intervals principle is one of the equivalent forms of completeness) and pairs with the slider-based gap-shrinking figure.