小数
小数(しょうすう、 decimal)とは、位取り記数法と小数点を用いて実数を表現するための表記法である。
0 超過 1 未満の数を、分数を使わずに表現する方法の一つ。1 を桁の基数 N で P 回割った数の桁を、小数第 P 位として表現する。
例えば、十進法で 1425 の百分の一に相当する数は、小数と小数点(ピリオドまたはコンマ)を用いて、
または、
のように表現する(なお、日本では小数点としてピリオドを用いることがほとんどである)。小数点より左を整数部(分)と呼んで、右から一の位、十の位の数を記述する。小数点より右は小数部(分)と呼んで、1 より小さい位として、左から十分の一の位、百分の一の位の数を順に記述する。上に挙げた数の場合には、十の位は「1」、一の位は「4」、十分の一の位は「2」、百分の一の位は「5」となる。より小さい数を表現する場合には、この後に「千分の一の位」や「一万分の一の位」と順に位を増やすことで対応することができる。
小数部分の位は、小数第一位は「十分の一の位」、小数第二位は「百分の一の位」となるが、単に「小数第一位」「小数第二位」というように序数で呼ぶ例も多い。「小数点以下第 P 位」と呼ぶこともあるが、この場合の「以下」は小数点自体は含まずに数えることになっているので、「小数第 P 位」と同じである。10進数以外の他の進数の表記においても同様である。
以下に使用例を挙げる。小数は長さや質量といった細分できる量を表現したり、割合や平均を表現するのにも用いる。
五円硬貨の厚さは 1.5、質量は 3.75。
1986年のランディ・バースの打率は 0.389。
国の人口密度順リストによると、グリーンランドの人口密度は 1あたり 0.03である。
円周率は円周の長さの直径に対する比率であり、である。
国際単位系(SI)の規定では、桁の数が多い場合の読取りを容易にするため、小数部の桁数が4以上の場合は、3桁ごとに空白(通常は、半スペース(thin space))で区切ることになっている。ただし、小数部の桁数が4の場合は、3桁と1桁とに分けないのが普通である。物理学をはじめとする理学や工学の分野では、この国際単位系(SI)の規定に従った記法が使われる。
ただし、設計図、財務諸表、コンピュータが読み取るスクリプト(script)などの特定の専門的分野では、上記のやりかたは必ずしも使われていない。
以下は、NIST SP811()における例である。
76 483 522  とする。  76,483,522 としない。
43 279.168 29  とする。  43,279.168 29 としない。
8012 又は 8 012 とする。 8,012  としない。
0.491 722 3 の方が 0.4917223 よりずっと望ましい。
0.5947 又は 0.594 7 とする。  0.59 47 としない。
8012.5947 又は 8 012.594 7  とする。 8 012.5947 や 8012.594 7 としない。
与えられた実数xと2以上の自然数nに対して,xのn進無限小数表記を与える無限数列a0, a1, a2, …の各項の値を決定する二種類の手続きを次のように与える。これらの手続きのどちらを採用してもその表記は一意的に定まるが、0以外の有限小数に対する無限小数表記は採用した手続きによって異なるものとなる。
一つ目:
x  0であれば、全ての項を0としてここで終了する。
a0  ⌈abs⁡(x)⌉ − 1, x′  abs⁡(x) − a0 ∈ (0, 1], p1  0(⌈⋅⌉: 天井函数,abs⁡(⋅): 絶対値)とし,i  1とおく。
区間(pi, pi + n]をn等分し、その両端点とn − 1個の等分点を左から s_{i,0}=p_i, s_{i,1}, \cdots, s_{i,j} = p_i {+} \frac{j}{n^i}, \cdots, s_{i,n-1}, s_{i,n}=p_i{+}\frac{n}{n^i} とする。
jを0からn − 1まで移動させ、x′ ∈ (si, j, si, j + 1]なるjが存在すればそこでjを固定し、ai  j, pi + 1  si, jとした後,iに1を加算して 3. に戻る。
こうして得られた数列anは、1以降のiに対して0 ≤ ai ≤ an − 1を満たすから、aiはn進法を用いて1桁の数字で表現できる。ここで、sgn⁡xを符号関数とし、(sgn⁡x)a0のn進法表記の後に.を付け(これを小数点と呼ぶ)、数字 aiを列記してできる表記、即ち
という形で無限小数表記が得られた。この手続きによる場合、無限数列aiの途中の項から0が無限に続くのは0しかない。
二つ目:
a0 = [abs⁡x]([・]:ガウス記号)とし、i = 1 とする。
x = abs x - a0、p1 = 0 とする。この時、x ∈ [0,1) である。もし、x = 0 であれば、残りの項を 0 としてここで終了する。
区間 [pi , pi+n1-i) を n 等分し、その両端点と n - 1 個の等分点を左から pi=si,0, si,1, …, si, n-1 , si, n=pi+n1-i とする。
j を 0 から n - 1 まで移動させ、x ∈ [sij, si,j + 1) なる j が存在すればそこで j を固定し、ai = j として次に進む。
もし、x = sij であれば、残りの項を 0 としてここで終了する。そうでなければ pi+1 = sij とし、i に 1 を加算して (3.) に戻る。
こうして得られた数列 an は、1 以降の i に対して 0 ≤ ai ≤ n - 1 を満たすから、ai は n 進法を用いて 1 桁で表現できる。ここで、(sgn⁡x)を符号関数とし、(sgn x)a0 の n 進法表記の後に . を付け(これを小数点と呼ぶ)、ai を列記していったもの、即ち
x = (\sgn x)a_0.a_1 a_2 a_3 \dots
とする表現を小数とする。この手続きによる場合、無限数列 an の途中の項から n - 1 が無限に続くことは無い。
但し、小数点以下のある項から 0 が無限に続くようであれば、その位置から 0 を省略し、何も書かなくてよい(この場合は有限小数となる)。特にその項が小数点以下第一位であった場合は小数点も省略して良い(この場合は整数となる)。また、そうでない場合は列記していく操作を永久に続けることになるが、実際は不可能である。このような時、省略記号を使って項を省略してよい。(上記「#小数の分類」参照)
バビロニア数学では六十進法の位取り記数法で数字を記述していた。十進法以外を含めるなら、バビロニア数学での数字表記が最古の小数である。ただし現在で言う小数点に相当するものが存在しないため、記述された数字の実際の数値がどうなのかは、前後の文脈から判断しないといけないという問題点があった。
現代の小数と同じ十進法における小数は、記録に残る所では古代中国が最古である。劉徽は263年に九章算術という数学書の注釈本を著していて、現代のアラビア数字表記での8.660254寸を「八寸六分六釐二秒五忽、五分忽之二」と書いている(小数第6位を表す単位が無いため、分数との併記になっている)。しかしこの時代の分はあくまで計量単位で『(長さの場合は常に)寸の1/10』を表しているのであり、現代的な無名数の小数が成立するのはもっと後の時代になる。漢数字#小数
現代の数学の系譜であるヨーロッパの数学においては、小数の導入は遅れた。これはエジプト式分数表記が普及していたためである。ヨーロッパで初めて小数を提唱したのは、オランダのシモン・ステヴィンである。1585年に出版した「十進分数論」の中で、初めて小数を発表した。その名が示す通り、分数の分母を十の累乗に固定した場合に計算が非常にやりやすくなると主張し、それが小数の発明となった。
なお、ステヴィンの提唱した小数の表記法は、現代の「0.135」であれば、これを「1①3②5③」と表記する。現代のような小数点による表記となったのは、20年ほど後にジョン・ネイピアの提唱による。