今日、私はMatlabでこの単純な問題に出くわしました:
>> 1/(10^309)
ans =
0
そしてすべてが順調です。今私はタイプします:
>> 0.0001/(10^308)
ans =
9.999999999984653e-313
と非常に混乱します。Matlab で可能な最小数ではありませんでしたrealmin=2.225073858507201e-308
か? 上記の出力が得られないのはなぜ0
ですか?
ではhelp realmin
、「REALMIN 最小の正の正規化された浮動小数点数」と記載されています。
正規化された浮動小数点数には、仮数に先行ゼロがないため、1.123 * 10^-10 のようになります。0.0001 * 10^-10 のように仮数の先頭にゼロがある場合、それはdenormalです。
eps(0)
Matlabで利用可能な最小のデノーマル数を与えると思います。