精度 (算術)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

精度(せいど、precision)とは、数値を表現する桁数を意味する。

概要[編集]

科学的には、全桁数を意味することが多いが(有効数字とも呼ぶ)、小数点以下の桁数を意味することもある。工学や金融などでは小数点以下の値が重要な意味を持つため、後者の定義が便利である。

いずれにしても、精度とは不正確な測定結果をどこで丸めるかを示すものである。例えば、浮動小数点数の算術では演算結果は「仮数」の長さという所定の精度で丸められる。金融計算では数値はある一定の桁数で丸められる(例えば、国際通貨の為替レートは一般に小数点以下2桁で丸められる)。

ここでは、例として十進数の値 12.345 を様々な精度で丸めるとどうなるかを示す。精度が不十分であれば、端数処理によってその精度に見合った桁数で数値が丸められる。下の表は最も一般的な四捨五入で丸めを行った場合を示している。

精度 有効桁数での丸め 小数点以下での丸め
5桁 12.345 12.34500
4桁 12.35 12.3450
3桁 12.4 12.345
2桁 12 12.35
1桁 1E+1 [* 1] 12.4
0桁 n/a 12
  1. ^ 1E+1 とは 1 × 10+1 を意味する。

丸め誤差[編集]

丸め誤差とは、計算で求められる数値の近似と数学的に正確な値との差である。数値解析では、近似方程式や近似アルゴリズムを使用したときの丸め誤差を予測しようとしてきた。特に有限の精度で実数を表現する際などである。丸め誤差は一種の量子化誤差である。

[編集]

表記 実際の値 近似値 誤差
1/7 0.142 857 0.142 857 1/7 000 000
ln 2 0.693 147 180 559 945 309 41...   0.693 147 0.000 000 180 559 945 309 41...
log10 2 0.301 029 995 663 981 195 21...   0.3010 0.000 029 995 663 981 195 21...
\sqrt[3]{2}立方根 1.259 921 049 894 873 164 76...   1.25992 0.000 001 049 894 873 164 76...
\sqrt{2}平方根 1.414 213 562 373 095 048 80...   1.41421 0.000 003 562 373 095 048 80...
e 2.718 281 828 459 045 235 36...   2.718 281 828 459 045   0.000 000 000 000 000 235 36...
π 3.141 592 653 589 793 238 46...   3.141 592 653 589 793 0.000 000 000 000 000 238 46...

桁数が増えると丸め誤差の影響も小さくなるが、桁数に制限がある限り、可算無限集合でない実数では何らかの丸め誤差は避けられない。この種の誤差は通常の数値表現では回避できない。

有限精度で数値を表す際の処理方法については端数処理を参照されたい。

情報工学における精度[編集]

情報工学における数値の精度とは、その数値を表現する項目の単位である。一般にビット数で表されるが、十進の桁数で表すこともある。

Javaデータ型の精度を定めている数少ないプログラミング言語の1つであるが、下の表はその標準整数型の精度の定義を示したものである。表に示された範囲は2の補数表現で符号付整数を表した場合の範囲である。

Java言語のデータ型の精度
精度(二進ビット数) 範囲
byte 8 -128 から +127
short 16 -32,768 から 32,767
int 32 -2,147,483,648 から 2,147,483,647
long 64 -9,223,372,036,854,775,808 から 9,223,372,036,854,775,807

関連項目[編集]

外部リンク[編集]