Page 1 of 1
SOLUCIONADO Suma Decimales
Posted: Tue Mar 10, 2009 1:50 pm
by Patricio Avalos Aguirre
Estimados
Como puedo hacer que esta operacion me da verdadero
Code: Select all
procedure paso()
local a := {;
53,;
-4 ,;
-10 ,;
-1 ,;
-1.4,;
-2.0,;
-10.0,;
-1.0,;
-2.0,;
-10.0}, i, x:=0, nSuma := 11.6
for i := 1 to len(a)
x += a[i]
next i
alert( nSuma = x )
return
Re: Suma Decimales
Posted: Tue Mar 10, 2009 2:09 pm
by Armando
Patricio:
Intenta con la función ROUND()
alert( ROUND(nSuma,1) = ROUND(x,1) )
Saludos
Re: Suma Decimales
Posted: Tue Mar 10, 2009 2:24 pm
by Patricio Avalos Aguirre
Gracias Armando..
Se soluciona el problema, pero creo que va mas alla de convertir
ya que si uno hace esto
Code: Select all
str( x,10,1) == Str( nSuma,10,1) igual da verdadero
si los numero de la matriz los paso a excel este me da verdadero, no se donde puede estar el problema, aun mas
lo he pasado a clipper 5.3b e igual me da valor falso..
alguien tendra una explicacion lógica
Re: Suma Decimales
Posted: Tue Mar 10, 2009 5:12 pm
by Armando
Patricio:
Sin yo ser experto, deduzco que el problema viene de la forma en que Clipper, Harbour y xHabrour tratan los números flotantes. Ojalá algun gurú nos aporte algo de luz sobre el tema.
Saludos
Re: Suma Decimales
Posted: Tue Mar 10, 2009 7:44 pm
by Ricardo Ramirez E.
Patricio..
Recuerdo una vez haber pasaso por ello
, inclusive en _ tenia que quitar los espacios
alltrim(str( x,10,1)) == alltrim(Str( nSuma,10,1)) para que de .T.
Creo que tenia que ver con las definiciones iniciales de las variables...
De todas maneras espero algun guro se pronuncie
Re: Suma Decimales
Posted: Wed Mar 11, 2009 12:26 pm
by Patricio Avalos Aguirre