[Cascavel-pm] Problema com IF

Patty Silva ptfzs em yahoo.com.br
Quarta Agosto 1 10:13:11 PDT 2007


Obrigada Nilson... Boa Dica :D

Nilson Santos Figueiredo Junior <acid06 em gmail.com> escreveu: On 8/1/07, Patty Silva 
 wrote:
> Ele imprimiu OK... ele nao compara float?

Você tem que tomar cuidado quando está trabalhando com número de ponto
flutuante.

Logo antes da comparação, dê um print nas variáveis e confira se os
valores estão realmente o que você deseja porque aquele 9.50 pode,
facilmente, ter sido transformado em 9.4999999999 ou aquele -7.9 em
-7.899999999 ou algo assim.

Isso acontece quando trabalhando com números de ponto flutuante em
qualquer linguagem de programação e é uma questão de precisão.

Não sei se esse é o seu problema nesse caso, mas a forma adequada para
se comparar floats com segurança em qualquer linguagem é algo do tipo:

  use constant TOLERANCE => 0.0001;

  # compara se $float e $value são iguais
  if ($float <= $value + TOLERANCE || $float >= $value -TOLERANCE) {
    print "Numeros iguais";
  }

-Nilson Santos F. Jr.
_______________________________________________
Cascavel-pm mailing list
Cascavel-pm em pm.org
http://mail.pm.org/mailman/listinfo/cascavel-pm



       Alertas do Yahoo! Mail em seu celular. Saiba mais.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070801/ff17b53b/attachment.html 


Mais detalhes sobre a lista de discussão Cascavel-pm