我有一个 Perl 程序,它可以处理偶尔很小的概率。由于舍入误差,有时其中一个概率为零。我想检查以下内容:
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 中最小的正浮点值是多少?它依赖于平台吗?如果是这样,是否有一个快速程序可以让我在我的机器上找到它?