erro em subtracao

Delphi

20/03/2004

Estou fazendo a subtracao em duas variaveis com conteudo 4,49 e 4,49 eo resultado deveria ser 0 mas esta retornando este resultado
1,77635683940025E-15, alguem sabe o pq disto e como resolver?


Ronaldomr

Ronaldomr

Curtidas 0

Respostas

Saggitharius

Saggitharius

20/03/2004

TENTE ASSIM :)

procedure TForm1.Button1Click(Sender: TObject);
var
num1, num2, resultado : real;
begin
num1 := 4.49;
num2 := 4.49;
resultado := num1 - num2;
Edit1.Text := FloatToStr(resultado);
end;

Obs: para o computador o Sinal VIRGULA virgula não existe, as casas decimais são tratadas com o sinal de PONTO, e pode ser ai o seu erro Valeu !!!!

espero ter ajudado... :wink:


GOSTEI 0
Beppe

Beppe

20/03/2004

Estou fazendo a subtracao em duas variaveis com conteudo 4,49 e 4,49 eo resultado deveria ser 0 mas esta retornando este resultado 1,77635683940025E-15, alguem sabe o pq disto e como resolver?


Deve ser um problema de precisão(quando vc precisa, naum da certo =P).
Tenta coloca as variáveis como Double ou Extended, ou ainda Currency, se for pra dinheiro.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

20/03/2004

Colega,

A representação de números reais no computador (representação em ponto flutuante) possui limites de alcance e de precisão, sendo o alcance limitado pelo número de bits do expoente e a precisão é determinada pelo número de bits da mantissa.
Ja falamos recentemente sobre isso aqui, basta utilizar o link acima ´pesquisa´ para se aprofundar mais no assunto.


GOSTEI 0
POSTAR