0.999...

数学における循環十進小数 0.999⋯ は、実数として数の「イチ」であると示すことができる。言葉を変えれば、記号 "0.999⋯" と "1" は同じ数を表している。これが等しいことの証明は、実数論の展開、背景にある仮定、歴史的文脈、対象となる聞き手などに合ったレベルで、各種段階の数学的厳密性が相応に考慮された、多様な定式化がある。
0.999⋯ は、省略記号の前の 9 の個数を多少増減させて 0.99999⋯ のようにも書くこともある。あるいは循環節を明確にするために 0.9, 0.(9), 0. などのような表記もある。一般に、任意の 0 でない有限小数（を末尾に無限個の 0 を付けて無限小数と見たもの）は、末尾に無限個の 9 が連なる値の等しい双子の表示（例えば 8.32 と8.31999⋯）を持つ。ふつうは有限小数表示が好まれることで、それが一意的な表示であるとの誤解に繋がり易い。同じ現象は、任意の別の底に関する位取り記数法や、あるいは同様の実数の表示法でも発生する。
0.999⋯ と 1 の等価性は、実数の体系（これは解析学ではもっとも一般的に用いられる体系である）に 0 でない無限小が存在しないことと深く関係している。一方、超実数の体系のように 0 でない無限小を含む別の数体系もある。そのような体系の大半は、標準的な解釈のもとで式 0.999⋯ の値は 1 に等しくなるが、一部の体系においては記号 "0.999⋯" に別の解釈を与えて 1 よりも無限小だけ小さいようにすることができる。
等式 0.999⋯ = 1 は数学者に長く受け入れられ、一般の数学教育の一部であったにも拘らず、これを十分直観に反するものと見做して、疑念や拒絶反応を示す学徒もいる。このような懐疑論は、「この等式を彼らに納得させることがいかに難しいか」が数学教育の様々な研究の主題となることに正当性を与える程度に当たり前に存在している。

代数的な証明

0.999⋯ という実数を明確にとらえるには、やはり小数点以下の位がすべて 9 であることを利用する。位取り記数法で表された有限小数における"位ごとの操作（四則演算）"が無限小数の各位についても一斉にできる、と見なすと、0.999⋯ = 1 を初等的に導くことができる。

無数の位ごとの操作の正当性

以上の2つの証明で用いた、無数の桁に対する位ごとの操作（つまり、掛け算や引き算）を一斉に行う（つまり⋯の部分に行う）ことは、その正当性が直ちに明らかというわけではない。有限小数に関しては、この過程は実数の計算法則にのみ依存している。この操作が無限小数にも適用できることを証明するためには、次節に述べる実解析の手法を必要とする。
日本の数学教育においては、高校数学の数学Iで循環小数の足し算・引き算・10倍が公理として採用されているため、上記の代数的な操作は高校数学の範囲内では正しい証明とされる。

解析的な証明

0.999⋯ という小数点以下の位に無数の 9 を加えていくという定義自体が解析的である。これが 1 に等しいことを厳密に証明するには、実解析の手法を必要とする。0.999⋯ という無限小数を正確にとらえるには、小数部分の位が無数に並ぶことを明確に定義し直すことが必要となる。

実数の構成

公理的集合論を用いて、実数の集合を有理数の集合上で組み立てられたある種の構造として明示的に定義する方法はいくつか存在する。まず、自然数とは、ものを数えるときに用いる番号のことであり、0 から始めて 0, 1, 2, ... と、+1 ずつ添加していくことにより得られる。自然数を拡張して整数全体を得るには、各自然数の反数を添加すればよい。さらにそれらの商を添加すると、有理数全体が得られる。これらの数体系には、加減乗除という四則演算が付随しており、さらに、任意の2数を比較しての大小関係（どちらが大きいか、小さいか、等しいか）という順序をも備えている。
有理数から実数への拡張は（自然数から整数や有理数への拡張と比べて）大きな飛躍である。この拡張の方法は、少なくとも2つの手法がよく知られている。ともに1872年に発表された有理数の切断によるものとコーシー列によるものである。これらの実数の構成法により 0.999⋯ = 1 を証明している実解析の教科書は見られない。現代数学では、解析学的に実数を構成し、それが数の公理を満たすかどうかに注意が払われる。公理による解析的手法により 0.999⋯ = 1 を証明することになるからである。しかしながら、実数の構成をより適切に、論理的に行うことにより、0.999⋯ = 1 の証明はもっと直接的になされる (self-contained) と主張する人もいる。

無限小を含む体系

0.999⋯ = 1 のいくつかの証明は、通常の実数がアルキメデス順序体であること、すなわち、"0 でない無限小は存在しない" ことに依存している。特に、差 1 − 0.999⋯ は任意の正の有理数よりも小さいはずであるから、それは（0 か）無限小でなければならないが、実数の体系には 0 でない無限小は無いので、差は 0、つまり二つの値は等しいことが結論付けられる。それでも、実数の非アルキメデス的代替となりうる様々な体系を含む、数学的に一貫した順序代数系は存在する。

超現実数・ゲーム

前項と特に関連して、組合せゲーム理論における同様の実数代替体系として、"無限二色ハッケンブッシュゲーム (infinite Blue-Red Hackenbush)" を考えることができる。1974年に、エルウィン・バールカンプ (Elwyn Berlekamp) はデータ圧縮のアイディアに刺激されてハッケンブッシュ文字列と実数の2進展開の関係について述べた。例えば、"ハッケンブッシュ文字列 (Hackenbush string)" LRRLRLRL⋯ の値は 0.010101⋯ =  である。しかしながら、文字列 LRLLL⋯（0.111⋯ に対応する）の値は 1 に比べてごくわずかだけ小さい。 これらの2数（LRLLL⋯ と 1）の差は超現実数 1/ω（ω は最小の超限順序数）である。これに関連するゲームは LRRRR⋯ すなわち 0.000⋯ である。

減法の再考

別の方法は、引き算はいつでもできるわけではなくて「1 − 0.999⋯ は存在しない」としてしまうことである。加法をもつが減法をもたない数学的構造には、可換半群、可換モノイド、半環 などが含まれる。リッチマンは 0.999⋯ < 1 となるようにデザインされた、そのような2つの構造を考えた。
まず、リッチマンは負でない"十進数"を文字通り小数展開となるように定義する。彼は辞書式順序と加法を定義した。ここでは 0.999⋯ < 1 であることに注意する。なぜなら単に、一の位において 0 < 1 となるからである。しかし、どんな「無限小数」x に対しても 0.999⋯ + x = 1 + x である。だから、"十進数"に特徴的なこととして、一つは加法が必ずしも打ち消し合わないということであり、もう一つは  に対応する"十進数"は存在しないということである。乗法を定義すると、"十進数"は正値全順序可換半環をなす。
乗法を定義する際、リッチマンはまた、"cut D" と呼ばれる別の構造を定義する。これは小数の切断の集合である。通常この定義は実数を導くが、彼は小数 d に対して、切断 (−∞, d) と "principal cut" (−∞, d] の両方を許す。その結果、実数たちは小数と「不安定な状態で共存する (living uneasily together with)」ことになる。したがって、再び 0.999⋯ < 1 を得る。"cut D" には正の無限小は存在しないが、"一種の負の無限小" 0⁻ が存在する。0⁻ には小数展開は存在しない。彼は 0.999⋯ = 1 + 0⁻ であると結論したが、一方、方程式 "0.999⋯ + x = 1" は解をもたない。