EPS (実数)

提供: MonoBook
2013年8月21日 (水) 14:31時点におけるimported>MikeCATによる版 (作成)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

EPSとは、浮動小数点演算の過程で発生する演算誤差により、 比較結果がおかしくなることを防ぐために使われる小さな値である。

主に1e-7~1e-10程度が使用される。(要出典)

使用方法

#include <math.h>
#define EPS 1e-7
double a,b;

a<b+EPS		/* a<=b */
a+EPS<b		/* a<b  */
fabs(a-b)<EPS	/* a==b */

使用例

#include <stdio.h>

#define EPS 1e-7

int main(void) {
	double a;
	for(a=0.0;a+EPS<10.0;a+=0.1) {
		printf("%.1f\n",a);
	}
	return 0;
}

このコードはよく実数演算の誤差により意図しない結果が出てくる例として示されるコードを改良したものであるが、 EPSを使用することにより比較結果が直感に近くなっていることがわかる。