26 de mayo de 2008

Redondear a X centavos hacia arriba o hacia abajo

Estas funciones redondean a X centavos para arriba o para abajo según se necesite.
lnNro = 12345.67

? RedondearMasAx(lnNro, 5)
? RedondearMenosAx(lnNro, 5)
?
? RedondearMasAx(lnNro, 25)
? RedondearMenosAx(lnNro, 25)
?
? RedondearMasAx(lnNro, 50)
? RedondearMenosAx(lnNro, 50)

FUNCTION RedondearMenosAx(tnVal, tnDec)
  RETURN Floor(tnVal * 100/tnDec) / (100/tnDec)
ENDFUNC

FUNCTION RedondearMasAx(tnVal, tnDec)
  RETURN CEILING(tnVal * 100/tnDec) / (100/tnDec)
ENDFUNC
Cada aplicación tiene sus propias necesidades de redondeo, diferentes a la función nativa ROUND() de Visual FoxPro. Es por ello que en la comunidad siempre se consulta sobre este tema, y en PortalFox existen las siguientes rutinas que cubren la mayoría de las necesidades:

-- Redondear a 5 centavos por arriba --
http://comunidadvfp.blogspot.com/2004/07/redondear-5-centavos-por-arriba.html

-- Redondear hacia arriba o hacia abajo --
http://comunidadvfp.blogspot.com/2007/06/redondear-hacia-arriba-o-hacia-abajo.html

-- Truncar un número --
http://comunidadvfp.blogspot.com/2004/08/truncar-un-numero.html

Luis María Guayán

No hay comentarios. :

Publicar un comentario