Какое наименьшее ненулевое положительное число с плавающей точкой в Perl?

У меня есть программа на Perl, которая работает с вероятностями, которые иногда могут быть очень маленькими. Из-за ошибки округления иногда одна из вероятностей оказывается равной нулю. Я хотел бы проверить следующее:

use constant TINY_FLOAT => 1e-200;
my $prob = calculate_prob();
if ( $prob == 0 ) {
    $prob = TINY_FLOAT;
}

Это работает нормально, но я на самом деле вижу, что Perl производит числа, которые меньше, чем 1e-200 (я только что видел пролет 8.14e-314). Для моего приложения я могу изменить метод convert_prob () так, чтобы он возвращал максимум TINY_FLOAT и фактическую вероятность, но мне стало интересно, как обрабатываются числа с плавающей точкой в Perl.

Какое наименьшее положительное значение с плавающей запятой в Perl? Это зависит от платформы? Если так, есть ли быстрая программа, которую я могу использовать, чтобы выяснить это на моей машине?

Ответы на вопрос(4)

Ваш ответ на вопрос