my $x = 0.05; my $y = sqrt($x+$x+$x); my $g = "$y"; my $h = sprintf "%.20f", $y; printf "\$y = %.20f\n\$g = %.20f\n", $y, $g; printf "\$h = %.20f\n", $h; print "Is \$y equal to \$g? ", floatEqual($y, $g) ? "Yes\n" : "No\n"; print "Is \$y equal to \$h? ", $y == $h ? "Yes\n" : "No\n"; sub floatEqual { return (abs($_[0] - $_[1]) <= 10**15); }