Já tive este problema e tinha a ver com a precisão numérica na parte fracionaria do numero.
Por exemplo: o número 3.0 é diferente do número 3.0000000000000<um caminhão de zeros>00000001 No debug do Delphi olhando os dois valores, eles eram mostrados como se fossem exatamente iguais, ou seja, o número 3, mas na parte fracionária deste número existia um digito localizado no final da parte fracionária que fazia o Delphi considerá-los diferentes e o pior é que o debug não mostrava isso. A solução que eu encontrei foi arredondar os dois números para uma determinada quantidade de casas decimais e depois compará-los. Espero que isto lhe seja útil. Clayton. _____ De: delphi-br@yahoogrupos.com.br [mailto:delphi...@yahoogrupos.com.br] Em nome de Hudson Dias Enviada em: sexta-feira, 27 de março de 2009 11:00 Para: delphi-br@yahoogrupos.com.br Assunto: [delphi-br] Erro doido no pascal Ola gente, estou passando um pouco de raiva em um sistema logico no delphi 7 Var Selecao, quatd : real; Selecao := StrToFloat(Edit1.Text); quatd := DM.EstoqueUnid.asFload; if Selecao <= quatd // aqui esta o erro then begin . . . end else showmessage('estoque insuficiente'); O estrnho que criei duas saidas no momento do processo, uma delas pra a Selecao e outra quatd, ou seja, se a selecao = 3 e quatd = 3 logicamente tinha que dar true e não false como esta dando... Alguem ja passou por isso? Ou estes erro doido so acontece comigo? Atenciosamente Hudson Dias www.alcancedigital.com.br hud...@alcancedigit <mailto:hudson%40alcancedigital.com.br> al.com.br (31)3434-6304 ou 8806-0649 [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas]