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]

Responder a