Redondear cantidades

1,281 views
Skip to first unread message

emr

unread,
Oct 23, 2011, 2:14:02 AM10/23/11
to Comunidad de Visual Foxpro en Español
Hola saludos a todos, mi pregunta es la siguiente:

Alguien me puede decir como hacer para redondear las cantidades,
ejemplo

los precios que tengan 2.4 pesos redondié a 0
y los precios que tengan mas de 2.5 redondié a 5 pesos

esto es que si tengo 112.4 pesos redondié a 110.00
y si tengo 112.5 redondié a 115.00

De antemano les agradezco mucho su ayuda

Saludos

Enrique Martinez Regalado
Puerto Vallarta, jalisco México
Message has been deleted

Roberto Lemos

unread,
Oct 23, 2011, 8:38:03 AM10/23/11
to Comunidad de Visual Foxpro en Español
Lo l�gico es:

112.4 = 112
112.5 = 113

Lo tuyo no se donde lo sacas?

-----Mensaje original-----
From: emr
Sent: Sunday, October 23, 2011 1:14 AM
To: Comunidad de Visual Foxpro en Espa�ol
Subject: [vfp] Redondear cantidades

Hola saludos a todos, mi pregunta es la siguiente:

Alguien me puede decir como hacer para redondear las cantidades,
ejemplo

los precios que tengan 2.4 pesos redondi� a 0
y los precios que tengan mas de 2.5 redondi� a 5 pesos

esto es que si tengo 112.4 pesos redondi� a 110.00
y si tengo 112.5 redondi� a 115.00

De antemano les agradezco mucho su ayuda

Saludos

Enrique Martinez Regalado
Puerto Vallarta, jalisco M�xico

Message has been deleted

Carlos Miguel FARIAS

unread,
Oct 23, 2011, 9:47:12 AM10/23/11
to publice...@googlegroups.com
Lo que se pide es logico, redondea a 5 enteros, no enteros solamente, puede ser por un requerimiento de manejo de cambio.
Aca en la Argentina, en epocas de hiperinflacion, los importes se redondeaban a 10 pesos o australes (no recuerdo que moneda teniamos en ese momento).
Para un redondeo a 10, es mas o menos directo

lnRedondeado = ROUND( lnOriginal / 10, 0 ) * 10

El 23 de octubre de 2011 09:42, peggasso <pegg...@gmail.com> escribió:
Round(112.4,0)
0 --> redondear sin decimales

Luis Maria Guayan

unread,
Oct 23, 2011, 9:50:37 AM10/23/11
to publice...@googlegroups.com
Este artículo de PortalFox te ayudará:

-- Redondear a X centavos hacia arriba o hacia abajo --

http://www.portalfox.com/article.php?sid=2609


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

Euro J. Nava L.

unread,
Oct 23, 2011, 9:54:54 AM10/23/11
to publice...@googlegroups.com
Amigo no entiendo tu planteamiento porque el redondeo se hace hacia su
unidad inmediatamente próxima (112->113) o precendente (111<-112)

Saludos

-----Mensaje original-----
De: publice...@googlegroups.com
[mailto:publice...@googlegroups.com] En nombre de emr
Enviado el: Domingo, 23 de Octubre de 2011 01:44 a.m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] Redondear cantidades

Message has been deleted

Walter R. Ojeda Valiente

unread,
Oct 23, 2011, 12:25:01 PM10/23/11
to publice...@googlegroups.com
Hola Euro

No, a veces se necesita lo que él pidió, a mí varios clientes me lo han pedido varias veces, la última hace alrededor de un mes.

Por ejemplo, para hallar el precio de venta se incrementa un 30% sobre el precio de costo. Si ese resultado da 112,43 entonces hay que redondearlo. Pero no a 112 ó a 113 sino a 110 ó a 115, que son números más redondos.

Eso se llama "redondear al 5 más cercano", también podrías redondear al "10 más cercano", al "100 más cercano" o a cualquier otro número.

La fórmula es la siguiente:

lnNumeroRedondeado = Round(lnNumeroOriginal / lnDivisor, 0) * lnDivisor

Ejemplo 1:
    lnNumeroOriginal = 112.
    lnDivisor = 5
    lnNumeroRedondeado = Round(lnNumeroOriginal / lnDivisor, 0) * lnDivisor
    ? lnNumeroRedondeado     && da como resultado 110

Ejemplo 2:
    lnNumeroOriginal = 112.49
    lnDivisor = 5
    lnNumeroRedondeado = Round(lnNumeroOriginal / lnDivisor, 0) * lnDivisor
    ? lnNumeroRedondeado     && da como resultado 110

Ejemplo 3:
    lnNumeroOriginal = 112.50
    lnDivisor = 5
    lnNumeroRedondeado = Round(lnNumeroOriginal / lnDivisor, 0) * lnDivisor
    ? lnNumeroRedondeado     && da como resultado 115

Ejemplo 4:
    lnNumeroOriginal = 113
    lnDivisor = 5
    lnNumeroRedondeado = Round(lnNumeroOriginal / lnDivisor, 0) * lnDivisor
    ? lnNumeroRedondeado     && da como resultado 115

Saludos.

Walter.

Euro J. Nava L.

unread,
Oct 23, 2011, 12:39:16 PM10/23/11
to publice...@googlegroups.com

Ahora entiendo

Enrique Martinez

unread,
Oct 24, 2011, 12:38:46 AM10/24/11
to publice...@googlegroups.com
Les comento, esto es a petición de un cliente, y la razón que da el
cliente es por que le resulta mas practico para dar el cambio, no
quiere manejar monedas menores a 5 pesos.

Saludos y muchas gracias a todos por contestar.

Enrique Martinez

Douglas Sánchez Guillén

unread,
Oct 24, 2011, 12:43:24 AM10/24/11
to publice...@googlegroups.com
Hola creo que todo esta claro pero un concejo nada mas para ti, pero te recomiendo manejar en facturacion una linea mas, en donde pongas el precio real y otra en donde pongas el redondeo, para cuadrar caja sino siempre va haber sobrante o diferencia con respecto al total precio en el inventario, otra cosa al cliente le imprimis el precio redondeado para que no vea la diferencia.


Saludes

Ing. Douglas Sánchez Guillén
      Consultor Informatico
Movistar: 505 8759 - 5342
Claro: 505 88495476

Walter R. Ojeda Valiente

unread,
Oct 24, 2011, 12:44:59 AM10/24/11
to publice...@googlegroups.com
¿Ya viste la fórmula?

Es muy sencilla.


lnNumeroOriginal = 112.49
lnDivisor = 5
lnNumeroRedondeado = Round(lnNumeroOriginal / lnDivisor, 0) * lnDivisor
? lnNumeroRedondeado     && da como resultado 110

Solamente cambia el valor de lnNumeroOriginal por cualquier otro número y verifica que funciona.

Saludos.

Walter.



> Date: Sun, 23 Oct 2011 23:38:46 -0500
> Subject: Re: [vfp] Redondear cantidades
> From: emr9...@gmail.com
> To: publice...@googlegroups.com

Enrique Martinez

unread,
Oct 24, 2011, 12:46:35 AM10/24/11
to publice...@googlegroups.com
Peggasso muchas gracias es efectivamente como necesitaba el redondeo,
muchisimas gracias.

saludos

Enrique Martinez

El día 23 de octubre de 2011 10:07, peggasso <pegg...@gmail.com> escribió:
> la funcion sería como esta
>
> **-----------
>
> LOCAL nMin, nMax as Integer
> clear
> ? redondealo(112.4)
>
>
> Function Redondealo(n As Double) As Double
> IF n>=ROUND(n,-1)
>        nMin=ROUND(n,-1)
>        nMax=nMin+5
> ELSE
>        nMax=ROUND(n,-1)
>        nMin=nMax-5
>
> ENDIF
> If n >= nMin+2.5 Then
>  Redondealo = nMax
> Else
>  Redondealo = nMin
> ENDIF
> RETURN Redondealo
> ENDFUNC

Enrique Martinez

unread,
Oct 24, 2011, 12:48:58 AM10/24/11
to publice...@googlegroups.com
Douglas

No habria diferencias en el precio, ya que el redondeo se haria desde
que das de alta el producto, o cuando tienes una compra del producto y
determinas el precio de venta, ya haces el redondeo, para que ya quede
el precio de venta redondeado.

Saludos y gracias por contestar.

Enrique Martinez

El día 23 de octubre de 2011 23:43, Douglas Sánchez Guillén
<dougl...@gmail.com> escribió:

Enrique Martinez

unread,
Oct 24, 2011, 12:58:50 AM10/24/11
to publice...@googlegroups.com
hola walter muchas gracias, veo que es muy sencillo tu ejemplo y
también es exacto el resultado que estaba buscando.

Muchas gracias y gracias a todos por su ayuda.

Enrique Martinez

El día 23 de octubre de 2011 23:44, Walter R. Ojeda Valiente
<wr...@hotmail.com> escribió:

Antonio.xt

unread,
Oct 24, 2011, 10:51:22 AM10/24/11
to Comunidad de Visual Foxpro en Español

Es correcto el requerimiento de redondear a 5 enteros, de hecho ese
tipo de redondeo se uso mucho aqui en Mexico hace varios años cuando
la moneda cambio de "Pesos" a "Nuevos Pesos", y era exactamente para
lo mismo que le estan solicitando al colega Enrique Martinez, para no
batallar con el manejo del cambio (feria, vuelto) en una venta.

De hecho la formula era: 1 y 2 baja a 0 (cero), 3 y 4 sube a 5.

Humberto Tijerina Y Asociados

unread,
Apr 14, 2016, 5:42:28 PM4/14/16
to Comunidad de Visual Foxpro en Español
yo redondeo a 5 pesos asi.

EN EXCEL. en la columna c pongo el valor a redondear. en la columna d pongo =MULTIPLO.INFERIOR(C1,5). en la columna e pongo =MULTIPLO.SUPERIOR(C1,5). en la columna f pongo =(D1-C1)+(E1-C1) y en la columna g pongo =SI(F1<0,E1,D1). y me da el redondeo a 5 o 0 pesos.

Jean Pierre Adonis De La Cruz Garcia

unread,
Apr 14, 2016, 6:22:47 PM4/14/16
to Comunidad de Visual Foxpro en Español
Amigo, te quedastes dormido en el tiempo, 
Ese ultimo comentario se realizo en 24 de octubre del año 2011,
jejeje, o quizas recien te has acrodado de al respuesta y has decidido responder.
pero lo hubieras hecho mañana viernes.

Carlos Miguel FARIAS

unread,
Apr 14, 2016, 6:38:50 PM4/14/16
to Grupo Fox
Hoy es casi viernes, a lo mejor lo vio en fecha pero recién hoy terminó de abrirle excel.

Antonio Meza

unread,
Apr 14, 2016, 6:58:03 PM4/14/16
to Comunidad de Visual Foxpro en Español
El problema es que tardo mucho en redondear a 5 jajajajajajaj

Luis Maria Guayan

unread,
Apr 16, 2016, 8:02:38 AM4/16/16
to publice...@googlegroups.com
Está bien, redondeó a 5 años :D

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

-- Redondear a X centavos hacia arriba o hacia abajo --

Luis María Guayán
Tucumán, Argentina

_______________________________
Comunidad Visual FoxPro en Español
http://comunidadvfp.blogspot.com

El 14/04/16 a las 19:58, Antonio Meza escribió:
Reply all
Reply to author
Forward
0 new messages