• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EPSILONとMIN_VALUEの違い)

EPSILONとMIN_VALUEの違い

このQ&Aのポイント
  • EPSILONとMIN_VALUEとはJavaScriptの数値型で使用される定数です。
  • EPSILONは浮動小数点の計算誤差を扱うために使われ、数値の差を比較する際に利用されます。
  • MIN_VALUEはJavaScriptで表せる0に最も近い最小の値であり、数値の最小値を表現する際に使用されます。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

「1より大きい最小の値」については指数部に制限が加わるため、その差が出ます。 例えば、仮数部・指数部共に8bitだとすると、共にとれる範囲は-128~127ですよね。 この場合、MIN_VALUEは1×2^(-128)になりますが、EPSILONは1と65×2^(-6)の差の1×2^(-6)になります。

uta_kira
質問者

お礼

m-take0220さま、ご回答ありがとうございます。 お礼が遅くなってすみません。 正直、1より大きいとなぜ指数部に制限が加わるのかいまいちよく分かっていないのですが(関連ページを見てもよく判らなかったので、落ち着いて勉強します)、1より大きい場合には精度が粗くなるので、一般的な浮動小数点計算の誤差の判定には、EPSILONを使うという認識でよいのしょうか。

その他の回答 (1)

回答No.2

前回の例でいくと、1の表現は何通りかあります。 1×2^(0) 2×2^(-1) 4×2^(-2) 8×2^(-3) 16×2^(-4) 32×2^(-5) 64×2^(-6) 仮数部の範囲が-128~127なので、指数部は-6より小さくなりません。なので、1の次に表現できる数は65×2^(-6)となってしまうのです。 1+MIN_VALUEを計算しても、指数部を-128のままにすると仮数部が(2^128+1)になり、当然8bitには収まりません。 EPSILONの定義は、おそらく経験則で決まったのでしょう。計算内容によっては、もっと小さな数にしないといけない場合もあります。

uta_kira
質問者

お礼

お礼が遅くなって申し訳ございません。 ご説明ありがとうございます。 おかげさまで指数部の制限について、理解できました。 ただ、EPSILONの使いどころについて、やや、もやっとしています。 有効桁数に応じて、許容の誤差数値は自分で決めるもので、必ずしもEPSILONを使うわけではないということでしょうか。