Delphi - Problema con ecuacion

 
Vista:

Problema con ecuacion

Publicado por Mayra (1 intervención) el 09/11/2007 19:52:19
Hola a todos tengo un problema al ejecutar esta ecuacion mi resultado debe ser 0 pero no es asi alguien me puede decir por que....

var
a,b,c:Real;
begin
a := 690.94;
b := 55.28;
c := 635.66;
a := a - b; // el resultado debe ser (a = 635.66)
a := a - c; // el resultado debe ser (a = 0)
ShowMessage(floattostr(a)); // sorpresa no es "0" es "1.13686837721616E-13"

Espero alguien me pueda ayudar

Besitos..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problema con ecuacion

Publicado por eva (29 intervenciones) el 09/11/2007 23:40:31
No se por qué ocurre, pero si se como se soluciona.

Cambia esta linea

a := a - c;

por esta otra

a := StrToFloat(FloatToStr(a)) - StrToFloat(FloatToStr(c));

y queda así

a := 690.94;
b := 55.28;
c := 635.66;
a := a - b;
a := StrToFloat(FloatToStr(a)) - StrToFloat(FloatToStr(c));
ShowMessage(floattostr(a));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Problema con ecuacion

Publicado por Richard (59 intervenciones) el 10/11/2007 01:53:34
Hola

me parece que con un formato se soluciona
prueba esto..

var
a,b,c:Real;
begin
a := 690.94;
b := 55.28;
c := 635.66;
a := a - b; // el resultado debe ser (a = 635.66)
a := a - c; // el resultado debe ser (a = 0)

ShowMessage(FormatFloat('0',a));

//Saludos..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar