Redondear a la decena

187 views
Skip to first unread message

Leonardo Cadena

unread,
Apr 7, 2014, 10:46:47 AM4/7/14
to Ayudas
Hola amigos buen dia

Como se hace en visual foxpro
para aproximar a la decena y fuera de eso me diga cuanto hacia falta

Ejemplos
Numero -Aproxdecena- Faltaban

85 = 90  Faltaban 5
24 = 30  Faltaban 6
11 = 20  Faltaban 9
1   = 10  Faltaban 9
7   = 10  Faltaban 3
48 = 50  Faltaban 2

mil gracias



Antonio.xt

unread,
Apr 7, 2014, 11:04:59 AM4/7/14
to publice...@googlegroups.com

Puedes usar la funcion MOD() que te regresa el residuo de una division.

lnResiduo = MOD(85, 10)
lnFaltan = 10 - lnResiduo

El valor de lnResiduo es 5, que es el dato que necesitas en la columan "Faltaban", o en una sola linea:

lnFaltan = 10 - (MOD(85, 10))

Saludos...

Luis Maria Guayan

unread,
Apr 7, 2014, 11:22:51 AM4/7/14
to publice...@googlegroups.com
Mira estas funciones en PortalFox:

-- Redondear hacia arriba o hacia abajo --
http://www.portalfox.com/article.php?sid=2449

Para tu caso:

lnNro = 85
lnMas = RedondearMas(lnNro,1)
? TRANSFORM(lnNro) + " = " + TRANSFORM(lnMas) + " faltaban " + TRANSFORM(lnMas-lnNro)

FUNCTION RedondearMas(tnNro, tnPos)
  RETURN CEILING(tnNro/10^tnPos)*10^tnPos
ENDFUNC


Luis María Guayán
Tucumán, Argentina
_________________________
http://www.PortalFox.com
Nada corre como un zorro
_________________________

Víctor Hugo Espínola Domínguez

unread,
Apr 7, 2014, 11:27:43 AM4/7/14
to publice...@googlegroups.com
Hola Leonardo

Prueba este código:

lnValor = 24
lnRedondo = RedondoArriba(lnValor, 10)
? lnValor, lnRedondo, lnRedondo - lnValor

Function RedondoArriba

    Lparameters tnValor, tnMultiplo

    Local lnResto, lnValRedond

    lnResto = Mod(m.tnValor, m.tnMultiplo)
    If m.lnResto > 0
        lnValRedond = m.tnValor + (m.tnMultiplo - m.lnResto)
    Else
        lnValRedond = m.tnValor
    Endif

    Return m.lnValRedond
Endfunc


Saludos,
Víctor.
Lambaré - Paraguay.

Reply all
Reply to author
Forward
0 new messages