みけCATのにっき(仮)
つれづれなるまゝに、日くらし、PCにむかひて、心に移りゆくよしなし事を、そこはかとなく書きつくれば、あやしうこそものぐるほしけれ。
(本当か!?)
出典

初心者のミスとeps

アバター
みけCAT
記事: 6734
登録日時: 13年前
住所: 千葉県
連絡を取る:

初心者のミスとeps

投稿記事 by みけCAT » 12年前

初心者向けのC言語の解説本や解説サイトには、よくこんな例が載っています。

CODE:

#include 

int main(void) {
	double i;
	for(i=0.0;i

int main(void) {
	int i;
	for(i=0;i

#define EPS 1e-8

int main(void) {
	double i;
	for(i=0.0;i+EPS<10.0;i+=0.1) {
		printf("%f\n",i);
	}
	return 0;
}
http://ideone.com/vzv6R
はい、きちんと9.9まで表示し、10.0は表示されませんでした!

結論
浮動小数点数の比較には、epsを使うことが重要である。

アバター
tk-xleader
記事: 158
登録日時: 13年前

Re: 初心者のミスとeps

投稿記事 by tk-xleader » 12年前

EPSの定義の1E-8は許容誤差ってことですよね?