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?