私は Perl で、時折非常に小さい可能性がある確率で動作するプログラムを持っています。丸め誤差のため、確率の 1 つがゼロになることがあります。以下のチェックを行いたいと思います。
use constant TINY_FLOAT => 1e-200;
my $prob = calculate_prob();
if ( $prob == 0 ) {
$prob = TINY_FLOAT;
}
これは問題なく動作しますが、実際には Perl が 1e-200 よりも小さい数を生成していることがわかります (8.14e-314 が飛び交うのを見たところです)。私のアプリケーションでは、calculate_prob() を変更して、TINY_FLOAT の最大値と実際の確率を返すようにできますが、これにより、Perl で浮動小数点数がどのように処理されるかについて興味を持ちました。
Perlで最小の正の浮動小数点値は何ですか? プラットフォーム依存ですか?もしそうなら、私のマシンでそれを理解するために使用できる簡単なプログラムはありますか?