Fórum erro em subtracao #221221

20/03/2004

0

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

Responder

Posts

20/03/2004

Saggitharius

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:


Responder

Gostei + 0

20/03/2004

Beppe

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.


Responder

Gostei + 0

20/03/2004

Aroldo Zanela

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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar