Existe um problema aqui, diferente da comparação.
A comparação de reais é problemática devido a estrutura interna do ponto flutuante. NÃO SE COMPARA REAIS POR MAIOR OU MENOR.Isso não é do Perl, mas das regras de aproximação usada pelos processadores.

Rounding rules

The standard defines five rounding rules. The first two round to a nearest value; the others are called directed roundings:
Roundings to nearest

Round to nearest, ties to even – rounds to the nearest value; if the number falls midway it is rounded to the nearest value with an even (zero) least significant bit, which occurs 50% of the time; this is the default for binary floating-point and the recommended default for decimal. Round to nearest, ties away from zero – rounds to the nearest value; if the number falls midway it is rounded to the nearest value above (for positive numbers) or below (for negative numbers); this is intended as an option for decimal floating point.

Directed roundings

Round toward 0 – directed rounding towards zero (also known as truncation). Round toward +∞ – directed rounding towards positive infinity (also known as rounding up or ceiling). Round toward −∞ – directed rounding towards negative infinity (also known as rounding down or floor).

Se a comparação for inevitável, converta o seu número para string e compare ou determine um nível de precisão aceitável e faça bit a bit.

Em 2012-11-28 21:42, Aureliano Guedes escreveu:
Ola Monges.

Estou com um problema simples mas que não acho a solução.

Eu tenho um hash onde as chaves são valores numericos reais (a
maioria negativo e quase nenhum inteiro).
Estou limitando esses valores por um maximo e um minimo.

 foreach my $keys (keys %d) {
 if ($keys <= $min and $keys >= $max) {
 print "$d{$keys}";
 }
 }

Problema que não da certo.
Ha algo de errado aqui??

_______________________________________________
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

_______________________________________________
Rio-pm mailing list
Rio-pm@pm.org
http://mail.pm.org/mailman/listinfo/rio-pm

Responder a