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://www.portalfox.com/article.php?sid=1097
-- Redondear hacia arriba o hacia abajo --
http://www.portalfox.com/article.php?sid=2449
-- Truncar un número --
http://www.portalfox.com/article.php?sid=1149
|