erro em subtracao
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?
1,77635683940025E-15, alguem sabe o pq disto e como resolver?
Ronaldomr
Curtidas 0
Respostas
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:
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
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
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.
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