15 de junio de 2007

Redondear hacia arriba o hacia abajo

A veces necesitamos redondear un número de una manera diferente que la función ROUND() nativa de VFP. Las siguientes funciones redondean un número "hacia arriba" o "hacia abajo" en los decimales, unidades, decenas, etc. como lo muestran los siguientes ejemplos, según el segundo parámetro pasado.
? RedondearMas(123.123,-2) 
? RedondearMenos(123.123,-2)

? RedondearMas(123.123,0) 
? RedondearMenos(123.123,0)
 
? RedondearMas(123.123,1) 
? RedondearMenos(123.123,1)
FUNCTION RedondearMas(tnNro, tnPos) 
  RETURN CEILING(tnNro/10^tnPos)*10^tnPos 
ENDFUNC 

FUNCTION RedondearMenos(tnNro, tnPos) 
  RETURN FLOOR(tnNro/10^tnPos)*10^tnPos 
ENDFUNC 
Luis María Guayán

2 comentarios :

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.