0.999…

在数学的完备实数系中，循环小数0.999…，也可写成、或，表示一个等于1的实数，即“0.999…”所表示的数与“1”相同。目前该等式已经有各式各样的证明式；它们各有不同的严谨性、背景假设，且都蕴含实数的实质条件，即阿基米德公理、历史文脉、以及目标受众。
这类展开式的非唯一性不仅限于十进制系统，相同的现象也出现在其它的整数进位制中，数学家们也列举出了一些1在非整数进位制中的写法，这种现象也不是仅仅限于1的：对于每一个非零的有限小数，都存在另一种含有无穷多个9的写法，由于简便的原因，我们几乎肯定使用有限小数的写法，这样就更加使人们误以为没有其它写法了，实际上，一旦我们允许使用无限小数，那么在所有的进位制中都有无穷多种替代的写法，例如，18.3287与18.3286999…、18.3287000…，以及许多其它的写法，都表示相同的数，这些各种各样的等式被用来更好地理解分数的小数展开式的规律，以及一个简单分形图形──康托尔集合的结构，它们也出现在一个对整个实数的无穷集合的经典研究之中。
在过去数十年里，许多数学教育的研究人员研究了大众及学生们对该等式的接受程度，许多学生在学习开始时怀疑或拒绝该等式，而后许多学生被老师、教科书和如下章节的算术推论说服接受两者是相等的，尽管如此，许多人们仍常感到怀疑，而提出进一步的辩解，这经常是由于存在不少对数学实数错误的观念等的背后因素（参见以下教育中遇到的怀疑一章节），例如认为每一个实数都有唯一的一个小数展开式，以及认为无限小（无穷小）不等于0，并且将0.999…视为一个不定值，即该值只是一直不断无限的微微扩张变大，因此与1的差永远是无限小而不是零，因此“永远都差一点”。我们可以构造出符合这些直观的数系，但是只能在用于初等数学或多数更高等数学中的标准实数系统之外进行，的确，某些设计含有“恰恰小于1”的数，不过，这些数一般与0.999…无关（因为与之相关的理论上和实践上都皆无实质用途），但在数学分析中引起了相当大的关注。

简介

0.999…是书写于小数记数系统中的一个数，读作：“零点九九循环”。一些最简单的0.999… = 1的证明都依赖于这个系统方便的算术性质。大多数的小数算术──加法、减法、乘法、除法，以及大小的比较，使用与整数差不多的数位层次的操作。与整数一样，任何两个有限小数只要数位不同，那么数值也一定不同。特别地，任何一个形如0.99…9的数，只要只得有限个9，这些9最终会停止，则该数都是严格小于1的。
误解0.999…中的“…”（省略号）的意义，是误解0.9999… = 1的其中一个原因。这里省略号的用法与日常语言和0.99…9中的用法是不同的，0.99…9中的省略号意味着有限的部分被省略掉了。但是，当用来表示一个循环小数的时候，“…”则意味着无限的部分被省略掉了，这只能用极限的数学概念来阐释。作为使用传统数学的结果，指派给记数表示式“0.999…”的值定义为一个实数，该实数为收敛数列（0.9，0.99，0.999，0.9999，0.99999，…）的极限。“0.999…”是一个数列的极限，从而，对于0.999…=1这个等式就很直观了。
与整数和有限小数的情况不一样，其实记数法也可以多种方式表示单一个数值。例如，如果使用分数，。但是，一个数最多只能用两种无限小数的方法来表示。如果有两种方法，那么其中一种一定从某一位开始全是循环重复的9，而另外一种则一定从某一位开始就全是循环重复的零。
0.999… = 1 有许多证明，它们各有不同的严谨性。一个严谨的证明可以简单地说明如下。考虑到两个实数其实是同一个的，当且仅当它们的差等于零。大部分人都同意，0.999…与 1 的差，就算存在也是非常的小(实际上根本不存在，即差等于0)。考虑到以上的收敛数列，我们可以证明这个差的大小一定是小于任何一个正数的，也可以证明（详细内容参见阿基米德性质），唯一具有这个性质的实数是零。由于差是零，可知 1 和 0.999…是同一数，用相同的理由，也可以解释为什么“”；而该等式乘上3倍后成为“0.999… = 1”。

对位相减

在不考虑柯西序列的情况下：
1.00000…
−　0.99999…
0.00000…
结果为0.000…，也就是后面的0无限循环。这两个数目在这里是无限循环小数，小数点后五位之后还会一直填上0，始终无法找到最后一位来填上1，因为如果补上1就会成为有限小数。1.000… - 0.999… = 0.000… = 0，故1 = 0.999…。
这假设了0.999…没有“最后的9”、这些无限循环小数的小数点后的位数为可列的（可以由第一个数位一个位一个位数下去而于有限次数到任一个数位）（这已得出0.999…没有“最后的9”）、1.000… - 0.999…的结果存在小数表示式。运算结果将没有“最后的1”，所以1与0.999…没有差值。

从建构实数着手

有些方法用公理集合论明确把实数定义为一定的建立在有理数上的结构。自然数──0、1、2、3，依此类推──从零开始并继续增加，这样每一个自然数都有一个后继者。我们可以把自然数的概念延伸到负数，得出所有的整数，并可以进一步延伸到比例，得出所有的有理数。这些数系伴随着加法、减法、乘法和除法的算术。更加微妙地，它们还包括排序，这样一个数就可以与另一个进行比较，并发现是大于、小于，还是等于。
从有理数到实数的一步，是一个很大的延伸。至少有两种常见的方法来达到这一步，它们都在1872年出版：戴德金分割，以及柯西序列。直接用到这些结构的0.999… = 1的证明，现在已经无法在实分析的教科书中找到了；最近几个年代的趋势，是使用公理化的分析。即使提供了这样的一个结构，它也通常被用来证明实数的公理，从而为以上的证明提供证据。然而，有些作者表达了从一个结构开始才是逻辑上更恰当的想法，这样得出的证明就更加完备了。

戴德金分割

在戴德金分割的方法中，每一个实数x定义为所有小于x的有理数所组成的无穷集合。比如说，实数1就是所有小于1的有理数的集合。每一个正的小数展开式很容易决定了一个戴德金分割：小于某个展开阶段的有理数的集合。所以实数0.999…是有理数r的集合，使得r < 0，或r < 0.9，或r < 0.99，或r小于其它具有 形式的数。0.999…的每一个元素都小于1，因此它是实数1的一个元素。反过来，1的一个元素是有理数，也就是。由于0.999…和1包含相同的有理数，因此它们是相同的集合：0.999… = 1。
把实数定义为戴德金分割，首先由理查德·戴德金在1872年出版。
以上把每一个小数展开式分配一个实数的方法，应归于弗雷德·里奇曼在《Mathematics Magazine》（《数学杂志》）上发表的一篇名为“Is 0.999… = 1?”（“0.999… = 1吗？”）的演讲稿，主要是为大学的数学教师，尤其是初级／高级程度，以及他们的学生而作。里奇曼注意到，在有理数的任何一个稠密子集中取戴德金分割，都得到相同的结果；特别地，他用到了十进分数（分母为10的幂的分数），这样便更快得出证明了：“所以，我们看到，在实数的传统定义中，方程 0.9* = 1 在一开始就建立了。”把这个步骤再作进一步的修改，便得到了另外一个结构，里奇曼对描述这个结构更感兴趣；参见以下的“其它数系”。

打破减法的惯例

另外一种也可以使以上证明不成立的方法，就是1 − 0.999…根本就不存在，因为减法并不一定就是可能的。具有加法运算但没有减法运算的数学结构包括可交换半群、可交换幺半群，以及半环。里奇曼考虑了两种这类的系统，使得0.999…< 1。
首先，里奇曼把非负的“小数”定义为字面上的小数展开式。他定义了字典序和一种加法运算，注意到0.999… < 1仅仅因为在个位数0 < 1，但对于任何一个有限小数x，都有0.999… + x = 1 + x。所以“小数”的一个独特之处，是等式两边不能同减一个数；另外一个独特之处，就是没有“小数”对应着¹⁄₃。把乘法也定义了以后，“小数”便形成了一个正的、全序的、可交换的半环。
在定义乘法的过程中，里奇曼还定义了另外一种系统，他称之为“分割D”，它是小数的戴德金分割的集合。通常用这种定义便可以得出实数，但对于小数d他既允许分割（−∞， d ），又允许“主分割”（−∞， d ]。这样做的结果，就是实数与“小数”“不舒服地住在一起”。这个系统中也有0.999… < 1。在分割D中不存在正的无穷小，但存在一种“负的无穷小”──0⁻，它没有小数展开式。里奇曼得出结论，0.999… = 1 + 0⁻，而方程“0.999… + x = 1”则没有解。