Jaka jest najmniejsza niezerowa dodatnia liczba zmiennoprzecinkowa w Perlu?

Mam program w Perlu, który działa z prawdopodobieństwami, które czasami mogą być bardzo małe. Z powodu błędu zaokrąglania czasami jedno z prawdopodobieństw wynosi zero. Chciałbym sprawdzić następujące elementy:

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

Działa to dobrze, ale w rzeczywistości widzę, że Perl generuje liczby mniejsze niż 1e-200 (właśnie widziałem przelot 8.14e-314). Dla mojej aplikacji mogę zmienić metodę calcul_prob () tak, aby zwracała maksymalną wartość TINY_FLOAT i rzeczywiste prawdopodobieństwo, ale to mnie ciekawi, jak liczby zmiennoprzecinkowe są obsługiwane w Perlu.

Jaka jest najmniejsza dodatnia wartość zmiennoprzecinkowa w Perlu? Czy jest zależny od platformy? Jeśli tak, czy istnieje szybki program, którego mogę użyć, aby dowiedzieć się na moim komputerze?

questionAnswers(4)

yourAnswerToTheQuestion