FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Redondear centena
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Redondear centena
Posted: Sat May 07, 2022 06:31 PM

Hola buenas tardes ?

De nuevo por aquí molestando, surge la necesidad de poder hacer el redondeo a la centena, con el fin de evitar problemas con el cambio cuando pagan en efectivo.

E intentando con la función round(), pero esta parece que aplica solo para los decimales.

Ejemplo:
Total a pagar $1.257
Debe quedar $1.200

Total a pagar $5.856
Debe quedar $5.800

De antemano gracias

Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: Redondear centena
Posted: Sat May 07, 2022 06:40 PM
Ya encontré la solución jejejejeje

Code (fw): Select all Collapse
#include "fivewin.ch"
FUNCTION Main()
Local nRedondear := 1859
Local nRodondeado := round(nRedondear,-2)
msginfo(nRodondeado)
Return nil
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Redondear centena
Posted: Sat May 07, 2022 08:50 PM
Code (fw): Select all Collapse
   ? Val( Str( 2525 / 100, 6, 0 ) ) * 100
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: Redondear centena
Posted: Sun May 08, 2022 05:58 PM

Cristobal, muchas gracias por responder.

Me surge una idea? podemos adaptar esa funciono que hiciste para que aproxime a 50 y no a 100.

Ejemplo:
$4785 -> $4800
$4727 -> $4750
$4611 -> $4600
$4673 -> $4650

De antemano gracias

Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 84
Joined: Wed Oct 24, 2007 12:48 PM
Re: Redondear centena
Posted: Mon May 09, 2022 06:39 AM
Hola, puedes probar usando el resto de la división.
Code (fw): Select all Collapse
nAproximar := 50
nRedondear := 4785
nResto := nRedondear % nAproximar
? nRedondear - IF ( nResto < (nAproximar / 2), nResto, - (nResto - nAproximar) )

No lo he probado, pero creo que puede funcionar.
Un saludo.
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Redondear centena
Posted: Sat May 14, 2022 01:26 AM
Code (fw): Select all Collapse
function Main()

   local n
   n := 4785
   ? if( Round( n / 100, 0 ) > Int( n / 100 ), Round( n / 100, 0 ) * 100, Round( n / 100, 0 ) * 100 + 50 )
   n := 4727
   ? if( Round( n / 100, 0 ) > Int( n / 100 ), Round( n / 100, 0 ) * 100, Round( n / 100, 0 ) * 100 + 50 )

Return nil
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: Redondear centena
Posted: Sat May 14, 2022 12:22 PM

Excelente amigo, muchísimas gracias :D

Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 159
Joined: Wed Mar 28, 2007 01:19 PM
Re: Redondear centena
Posted: Thu May 19, 2022 03:42 PM

Hola, mas simples...

nAproximar := 50
nRedondear := 47085
? round(nRedondear / nAproximar, 0) * nAproximar

Saludos, Euclides

Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Re: Redondear centena
Posted: Fri May 20, 2022 11:04 PM

Euclides, muchas gracias por la ayuda, excelente solución también :D

Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]

Continue the discussion