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
SOLUCIONADO

Buscando los mensajes del foro doy por solucionadO este tema

http://forums.fivetechsupport.com/viewt ... ales#p1964
http://forums.fivetechsupport.com/viewt ... als#p73818