小数

小数とは、位取り記数法と小数点を用いて実数を表現するための表記法である。

1. 概要
-----

0 超過 1 未満の数を、分数を使わずに表現する方法の一つ。1 を桁の基数 N で P 回割った数の桁を、小数第 P 位として表現する。

例えば、十進法で 1425 の百分の一に相当する数は、小数と小数点を用いて、

または、

のように表現する。小数点より左を整数部と呼んで、右から一の位、十の位の数を記述する。小数点より右は小数部と呼んで、1 より小さい位として、左から十分の一の位、百分の一の位の数を順に記述する。上に挙げた数の場合には、十の位は「1」、一の位は「4」、十分の一の位は「2」、百分の一の位は「5」となる。より小さい数を表現する場合には、この後に「千分の一の位」や「一万分の一の位」と順に位を増やすことで対応することができる。

小数部分の位は、小数第一位は「十分の一の位」、小数第二位は「百分の一の位」となるが、単に「小数第一位」「小数第二位」というように序数で呼ぶ例も多い。「小数点以下第 //P// 位」と呼ぶこともあるが、この場合の「以下」は小数点自体は含まずに数えることになっているので、「小数第 //P// 位」と同じである。10進数以外の他の進数の表記においても同様である。

2. 使用例
------

以下に使用例を挙げる。小数は長さや質量といった細分できる量を表現したり、割合や平均を表現するのにも用いる。

細分できる量
五円硬貨の厚さは 1.5、質量は 3.75。割合や平均
1986年のランディ・バースの打率は 0.389}}。
国の人口密度順リストによると、グリーンランドの人口密度は 1あたり 0.03である。
円周率は円周の長さの直径に対する比率であり、#expr:pi round 8}}である。

3. 小数部の区切り
----------

国際単位系の規定では、桁の数が多い場合の読取りを容易にするため、小数部の桁数が4以上の場合は、3桁ごとに空白で区切ることになっている。ただし、小数部の桁数が4の場合は、3桁と1桁とに分けないのが普通である。物理学をはじめとする理学や工学の分野では、この国際単位系の規定に従った記法が使われる。

ただし、設計図、財務諸表、コンピュータが読み取るスクリプトなどの特定の専門的分野では、上記のやりかたは必ずしも使われていない。

以下は、NIST SP811における例である。

76 483 522 とする
43 279.168 29 とする
8012 又は 8 012 とする
0.491 722 3 の方が　0.4917223　より望ましい
0.5947 又は 0.594 7 とする
8012.5947 又は 8 012.594 7 とする

4. 小数の分類
--------

4.1. 有限小数と無限小数
--------------

有限桁の数字で表せる小数を有限小数と呼ぶ。一般には分数が有限小数になる条件は、記数法の底と分母の素因数との関係で記述できる。既約分数 //a/////b//}} が k}} 進法で有限小数となるための必要充分条件は rad&mid;rad}} となる。即ち b}} の素因数が全て k}} の素因数にもなっていることである。

例．10進数においては基数10が 2 × 5 で表せることより除数 //b// が 2//i//}} × 5//j//}}  の数においては有限小数になる。他の進数においてもその進数の基数の数により有限小数になる数が定まる。一般の実数は有限小数として表せない。小数部の桁数が有限にならないものを無限小数と呼ぶ。例えば円周率は通常の位取り記数法において有限小数として表せず、無限小数として表される数の一つである。

4.2. 循環小数と非循環小数
---------------

1=sfrac や 1=sfrac、あるいは 1=sfrac など、小数部に有限の長さの数列が繰り返し連続して現れるものを循環小数と呼ぶ。また繰り返し現れる数列のうち最も短いものを循環節と呼ぶ。

循環小数として表せる数は有理数に限られる。

循環小数は循環節と有限小数の組として表せる。様々な記法があるが、一般的に用いられる記法の一つとして、下記のように循環節の始点と終点をドットで示す方法がある：

循環節の長さが1桁の場合、ドットを1つだけ打つ：

必要ならば、有限小数として表せる数は循環小数としても表せる。例えば、1=sfrac のように、0 や 9 を無限に繰り返しているといえるからである。

無限小数のうち循環小数として表せないものを非循環小数と呼ぶ。小数展開が循環小数となる数は有理数であるから、非循環小数となる数は無理数である。非循環小数は簡単に作ることができ、例えば

は非循環小数である。

4.3. 表示の一意性
-----------

殆どの場合に異なる無限小数表示は異なる実数を与えるが、

1/10 = 0.1 = 0.0999... 273/1000 = 0.273 = 0.272999...のように、途中から全ての桁に「10 - 1」にあたる数字が並び続けるような表示は、「10 - 1」の並びが始まる直前の数字を1つ増やして、後は0を続けたものと同じ実数を与える。

小数は、実数を整数 //a//0 と 0 から 9 までのどれかにあたる //a////n//  を用いて

のような無限級数の形で表すことであるから、すべての //a////n// が一致しなくても極限が一致することはありうるのである。しかし、あるところから先にすべて 0 が続くことがないように循環小数として表せば表現は一意的になる。このためいくつかの場合には、全てを循環小数として表現することが必要になる。

4.4. その他の分類
-----------

整数部が0である小数を純小数または真小数、それ以外を帯小数と呼ぶことがある。

5. 実数の表現
--------

与えられた実数x}}と2}}以上の自然数n}}に対して，x}}のn}}進無限小数表記を与える無限数列mvarの各項の値を決定する二種類の手続きを次のように与える。これらの手続きのどちらを採用してもその表記は一意的に定まるが、0}}以外の有限小数に対する無限小数表記は採用した手続きによって異なるものとなる。

一つ目：

mvarであれば、全ての項を0}}としてここで終了する。
mvarとし，mvarとおく。
区間(mvarをn}}等分し、その両端点とmvar個の等分点を左から とする。
j}}を0}}からmvarまで移動させ、mvarなるj}}が存在すればそこでj}}を固定し、mvarとした後，i}}に1}}を加算して 3. に戻る。こうして得られた数列mvarは、1}}以降のi}}に対して0 ≤ mvarを満たすから、mvarはn}}進法を用いて1}}桁の数字で表現できる。ここで、sgn⁡mvarを符号関数とし、(sgn⁡mvarのn}}進法表記の後に.}}を付け、数字 mvarを列記してできる表記、即ち

という形で無限小数表記が得られた。この手続きによる場合、無限数列mvarの途中の項から0}}が無限に続くのは0}}しかない。

二つ目：

//a//0 = [abs⁡//x//]とし、//i// = 1 とする。
//x'// = abs //x// - //a//0、//p//1 = 0 とする。この時、//x ∈ [0,1) である。もし、//x = 0 であれば、残りの項を 0 としてここで終了する。
区間 [//p////i// , //p////i//+//n//1-//i//) を //n// 等分し、その両端点と //n// - 1 個の等分点を左から //p////i//=//s////i//,0, //s////i//,1, …, //s////i//, //n//-1 , //s////i//, //n//=//p////i//+//n//1-//i// とする。
//j// を 0 から //n// - 1 まで移動させ、//x'// ∈ [//s////ij//, //s////i//,//j// + 1) なる //j// が存在すればそこで //j// を固定し、//a////i// = //j// として次に進む。
もし、//x'// = //s////ij// であれば、残りの項を 0 としてここで終了する。そうでなければ //p////i//+1 = //s////ij// とし、//i// に 1 を加算して  に戻る。こうして得られた数列 //a////n// は、1 以降の //i// に対して 0 ≤ //a////i// ≤ //n// - 1 を満たすから、//a////i// は //n// 進法を用いて 1 桁で表現できる。ここで、を符号関数とし、//a//0 の //n// 進法表記の後に . を付け、//a////i// を列記していったもの、即ち

とする表現を小数とする。この手続きによる場合、無限数列 //a////n// の途中の項から //n// - 1 が無限に続くことは無い。

但し、小数点以下のある項から 0 が無限に続くようであれば、その位置から 0 を省略し、何も書かなくてよい。特にその項が小数点以下第一位であった場合は小数点も省略して良い。また、そうでない場合は列記していく操作を永久に続けることになるが、実際は不可能である。このような時、省略記号を使って項を省略してよい。

6. 小数の起源
--------

バビロニア数学では六十進法の位取り記数法で数字を記述していた。十進法以外を含めるなら、バビロニア数学での数字表記が最古の小数である。ただし現在で言う小数点に相当するものが存在しないため、記述された数字の実際の数値がどうなのかは、前後の文脈から判断しないといけないという問題点があった。

現代の小数と同じ十進法における小数は、記録に残る所では古代中国が最古である。中国では紀元前14世紀から十進法が使用されており、紀元前から計算上小数が使用されていたと推測される。現存する最古の小数は、紀元5年の日付のある劉歆による体積の標準単位に関する碑文にある「9.5」である。劉徽は263年に九章算術という数学書の注釈本を著していて、現代のアラビア数字表記での8.660254寸を「八寸六分六釐二秒五忽、五分忽之二」と書いている。しかしこの時代の分はあくまで計量単位で『寸の1/10』を表しているのであり、現代的な無名数の小数が成立するのはもっと後の時代になる。

現代の数学の系譜であるヨーロッパの数学においては、小数の導入は遅れた。これはエジプト式分数表記が普及していたためである。ヨーロッパで初めて小数を提唱したのは、オランダのシモン・ステヴィンである。1585年に出版した「十進分数論」の中で、初めて小数を発表した。その名が示す通り、分数の分母を十の累乗に固定した場合に計算が非常にやりやすくなると主張し、それが小数の発明となった。

なお、ステヴィンの提唱した小数の表記法は、現代の「0.135」であれば、これを「1①3②5③」と表記する。ヨーロッパにおいて現代のような小数点による表記となったのは、20年ほど後にジョン・ネイピアの提唱による。

7. 注釈
-----

8. 出典
-----

9. 参考文献
-------

10. 関連項目
--------

小数点
浮動小数点数 - 計算機における実数の表現
固定小数点数 - 計算機における実数の表現
床関数 - 小数から整数部分を得るために使うことがある