FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Problema con decimales
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Problema con decimales
Posted: Fri Sep 03, 2010 03:12 PM

En un sistema de sueldos tengo una rutina donde se cargan los conceptos de cada uno de los empleadosen dos columnas. La 1º, los conceptos rem. y no rem. y en la otra los descuentos. En algunos casos usan un concepto de redondeo. si el sueldo neto es de 1230,45 este concepto hace que esta suma sea 1231.00 es decir, el valor del redondeo es de 0.55. El problema que se presenta es que al aplicar este concepto ( que sumo en la primera columna ) obtengo 1230.99 o 1231.01 y pocas veces el valor correcto. Se me ocurre que xharbour trabaja con más de dos decimales y p'or esa razón estas diferencias. Hay alguna manera de solucionar esto ? Desde ya muchisimas gracias

Posts: 563
Joined: Sun Oct 09, 2005 07:23 PM
Re: Problema con decimales
Posted: Fri Sep 03, 2010 05:39 PM

No he entendido del todo el problema, no obstante, te recomiendo que cuando realices cálculos en los que el resultado final sean un número determinado de decimales realices los cálculos, en todos los pasos intermedios, redondeando a esos decimales con la función round().

Espero te sirva de ayuda.

Posts: 244
Joined: Fri Oct 28, 2005 06:29 PM
Re: Problema con decimales
Posted: Fri Sep 03, 2010 06:25 PM

Como dice Verhoven, cada vez que vayas haciendo cálulos, como porcentajes por ejemplo, usa round( Valor, 2 ) para ir "matando" eso decimales que al final te estan causando problemas.

Saludos

Alejandro Cebolido

Buenos Aires, Argentina
Posts: 1054
Joined: Sun Oct 09, 2005 10:41 PM
Re: Problema con decimales
Posted: Fri Sep 03, 2010 07:09 PM

Hola, redondea asi:

nA := 45.86
nA := INT(nA + 0.5)
nA == 46

Salu2

Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: Problema con decimales
Posted: Tue Sep 07, 2010 03:39 PM

muchas gracias por sus sugerencias. Probaré

Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: Problema con decimales
Posted: Thu Sep 09, 2010 02:07 PM

He solucionado este problema utilizando Round(). Muchisimas gracias a todos

Continue the discussion