Como truncar un numero decimal de dos digitos para que la terminacion sea 0 o 5??

712 views
Skip to first unread message

alejandro

unread,
Jan 29, 2014, 5:31:43 PM1/29/14
to publice...@googlegroups.com
Hola amigos del foro, tengo una inquietud tengo que redondear los numeros que me arrojan una ecuacion para el calculo de costos a numeros de dos decimales que terminen en 0 o 5.
Existe alguna funcion para realizar esto?? el round me redondea yo necesito que si por ejm
5,34 me devuelva 5.35
5.31 me devuelva 5.30
5.78 me devuelva 5.80

y asi..

Muchisimas gracias y agradezco su tiempo.

Víctor Hugo Espínola Domínguez

unread,
Jan 29, 2014, 5:49:40 PM1/29/14
to publicesvfoxpro
Hola Alejandro

Prueba esta función:

*
*
*--  ? ProximoRedondeo(5.34,0.05)
*--  ? ProximoRedondeo(5.31,0.05)
*--  ? ProximoRedondeo(5.78,0.05)
*
Function ProximoRedondeo
Lparameters nValue, nNearest
Local nRemainder, nReturn

nRemainder = Mod(m.nValue, m.nNearest)
If m.nRemainder >= m.nNearest/2
nReturn = m.nValue + (m.nNearest - m.nRemainder)
Else
nReturn = m.nValue - m.nRemainder
Endif

Return m.nReturn

Endfunc

Saludos,
Víctor.
Lambare - Paraguay.

Carlos Alfaro

unread,
Jan 29, 2014, 6:07:13 PM1/29/14
to publice...@googlegroups.com

Saludos estimado amigo:

 

Otra manera, pero que no se si es mas practica:

 

¿ Redondeo(5.78)

 

Function Redondeo

LParameters l_num

Return ROUND(l_num,1) + IIF(BETWEEN(MOD(l_num*10,1),.25,.75),.05,0)

 

Bendiciones.

 

Carlos Alfaro

Carlos Alfaro

unread,
Jan 29, 2014, 6:09:04 PM1/29/14
to Carlos Alfaro, publice...@googlegroups.com

Perdon amigos:

 

Hice otras pruebas y tiene un error, voy a afinarlo.

 

Carlos Alfaro

 

From: Carlos Alfaro [mailto:calf...@yahoo.com.ar]
Sent: miércoles, 29 de enero de 2014 05:07 p.m.
To: 'publice...@googlegroups.com'
Subject: RE: [vfp] Como truncar un numero decimal de dos digitos para que la terminacion sea 0 o 5??

 

Saludos estimado amigo:

 

Otra manera, pero que no se si es mas practica:

 

¿ Redondeo(5.78)

 

Function Redondeo

LParameters l_num

Return ROUND(l_num,1) + IIF(BETWEEN(MOD(l_num*10,1),.25,.75),.05,0)

 

Bendiciones.

 

Carlos Alfaro

 

From: publice...@googlegroups.com [mailto:publice...@googlegroups.com] On Behalf Of Víctor Hugo Espínola Domínguez
Sent: miércoles, 29 de enero de 2014 04:50 p.m.
To: publicesvfoxpro
Subject: Re: [vfp] Como truncar un numero decimal de dos digitos para que la terminacion sea 0 o 5??

 

Hola Alejandro

Luis Maria Guayan

unread,
Jan 29, 2014, 6:20:35 PM1/29/14
to publice...@googlegroups.com
-- Redondear a 5 centavos por arriba --
http://www.portalfox.com/index.php?name=News&file=article&sid=1097

-- Redondear a X centavos hacia arriba o hacia abajo --
http://www.portalfox.com/index.php?name=News&file=article&sid=2609


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

Reply all
Reply to author
Forward
0 new messages