新城@筑波大学情報です。こんにちは。
数値計算の話だと言語は関係ないんですが、

In article <bj3o18$ik7$1@caraway.media.kyoto-u.ac.jp>
        "Atsushi Hattori" <hattori@sme.kuciv.kyoto-u.ac.jp> writes:
>  doubleの数値を比較、というより、==の場合を考えたい
> のですが、何かいい方法はありませんでしょうか。
>  パソコンだと、プラスマイナス10^-14倍ぐらいで==と見る、
> とかでしょうか。

一般的には、浮動小数点の場合は、== で比較してはいけません。
その代わりに
        fabs((a-b)/a) <= epsilon
とやるのが、一般的です。EPSILON が 0.01 なら、1% の精度で同
じという意味です。== で比較すると、繰り返して精度をあげてい
くようなアルゴリズムでは、最後は行ったり来たりで振動して無限
ループになったりします。

double だと、48 ビットの精度があるのですが、それだけ 
0.000...1 とやってもいいかというと、そうもいかないでしょう。
ギリギリだと、== と同じく振動して止まらないこともあるし。自
分が欲しい精度で止めるのでしょう。

Fortran の教科書には、書いてあるんでしょうけれど、C言語の教
科書にはあんまり書いてない話かもしれません。

\\ 新城 靖 (しんじょう やすし) \\
\\ 筑波大学 電子・情報       \\