Redondear siempre hacia arriba un numero

24/07/2003 - 11:22 por Marky | Informe spam
Hola todos,

He estado mirando la documentación de vbscript y no he encontrado ninguna
función que me permita hacer lo que quiero.

El caso es que por ejemplo tengo un numero decimal 3,1 y quiero que siempre
se redondee hacia arriba, me da igual que sea 3,1 o 3,8 siempre se tiene que
convertir en 4.

Salu2,

Marky

Preguntas similare

Leer las respuestas

#1 Miguel Gonzalez
24/07/2003 - 11:54 | Informe spam
Redondea hacia abajo, normalmente, y luego le sumas 1

Saludos!
Miguel

"Marky" escribió en el mensaje
news:
Hola todos,

He estado mirando la documentación de vbscript y no he encontrado ninguna
función que me permita hacer lo que quiero.

El caso es que por ejemplo tengo un numero decimal 3,1 y quiero que


siempre
se redondee hacia arriba, me da igual que sea 3,1 o 3,8 siempre se tiene


que
convertir en 4.

Salu2,

Marky


Respuesta Responder a este mensaje
#2 Marky
24/07/2003 - 12:33 | Informe spam
Todas las funciones que he visto redondean dependiendo de si el decima es
mayor o menor que cinco (como cint, round etc.) pero obligar a redondear
hacia arriba siempre no sé como.

Si sale 2,4 la funcion cint(2,4) me devuelve 2 y yo quiero 3. Si sale 2,5 la
funcion cint(2,8) me devuelve 3 que es lo que quiero pero no se como
diferenciar si lo ha hecho hacia arriba o hacia abajo. Es decir que siempre
redondee hacia arriba sin distinguir.

"Miguel Gonzalez" escribió en el mensaje
news:
Redondea hacia abajo, normalmente, y luego le sumas 1

Saludos!
Miguel

"Marky" escribió en el mensaje
news:
> Hola todos,
>
> He estado mirando la documentación de vbscript y no he encontrado


ninguna
> función que me permita hacer lo que quiero.
>
> El caso es que por ejemplo tengo un numero decimal 3,1 y quiero que
siempre
> se redondee hacia arriba, me da igual que sea 3,1 o 3,8 siempre se tiene
que
> convertir en 4.
>
> Salu2,
>
> Marky
>
>


Respuesta Responder a este mensaje
#3 Programmer
24/07/2003 - 15:44 | Informe spam
Aqui hay problema si intentas redondear un número entero.

Solucionalo asi:

Dim miNumero
IF (Numero - Int(Numero) >0 Then
miNumero = Int(numero) + 1
ELSE
miNumero = Numero
END IF

POsData: Debes agregar que hacer en caso de que el número sea negativo, pero
esta es la idea.



JOSE DAVID GALVIZ MUÑOZ
Microsoft Certified Professional
MS VBASIC

"Miguel Gonzalez" escribió en el mensaje
news:%
Utiliza la función "Int" (que trunca los decimales):

Dim miNumero
miNumero = Int(numero) + 1

Saludos!
Miguel


"Marky" escribió en el mensaje
news:
> Todas las funciones que he visto redondean dependiendo de si el decima


es
> mayor o menor que cinco (como cint, round etc.) pero obligar a redondear
> hacia arriba siempre no sé como.
>
> Si sale 2,4 la funcion cint(2,4) me devuelve 2 y yo quiero 3. Si sale


2,5
la
> funcion cint(2,8) me devuelve 3 que es lo que quiero pero no se como
> diferenciar si lo ha hecho hacia arriba o hacia abajo. Es decir que
siempre
> redondee hacia arriba sin distinguir.
>
> "Miguel Gonzalez" escribió en el mensaje
> news:
> > Redondea hacia abajo, normalmente, y luego le sumas 1
> >
> > Saludos!
> > Miguel
> >
> > "Marky" escribió en el mensaje
> > news:
> > > Hola todos,
> > >
> > > He estado mirando la documentación de vbscript y no he encontrado
> ninguna
> > > función que me permita hacer lo que quiero.
> > >
> > > El caso es que por ejemplo tengo un numero decimal 3,1 y quiero que
> > siempre
> > > se redondee hacia arriba, me da igual que sea 3,1 o 3,8 siempre se
tiene
> > que
> > > convertir en 4.
> > >
> > > Salu2,
> > >
> > > Marky
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Miguel Gonzalez
24/07/2003 - 16:23 | Informe spam
Gracias José!

... no había pensado en esa posibilidad.

PD para Marky (complementando lo sugerido por José):

En caso de número negativo... pues podrás elegir entre las funciones "Int" o
"Fix" (la primera trunca hacia abajo (-3.2 devuelve -4) y la segunda hacia
arriba (-3.2 devuelve -3)

Saludos!
Miguel

"Programmer" escribió en el mensaje
news:%
Aqui hay problema si intentas redondear un número entero.

Solucionalo asi:

Dim miNumero
IF (Numero - Int(Numero) >0 Then
miNumero = Int(numero) + 1
ELSE
miNumero = Numero
END IF

POsData: Debes agregar que hacer en caso de que el número sea negativo,


pero
esta es la idea.



JOSE DAVID GALVIZ MUÑOZ
Microsoft Certified Professional
MS VBASIC

"Miguel Gonzalez" escribió en el mensaje
news:%
> Utiliza la función "Int" (que trunca los decimales):
>
> Dim miNumero
> miNumero = Int(numero) + 1
>
> Saludos!
> Miguel
>
>
> "Marky" escribió en el mensaje
> news:
> > Todas las funciones que he visto redondean dependiendo de si el decima
es
> > mayor o menor que cinco (como cint, round etc.) pero obligar a


redondear
> > hacia arriba siempre no sé como.
> >
> > Si sale 2,4 la funcion cint(2,4) me devuelve 2 y yo quiero 3. Si sale
2,5
> la
> > funcion cint(2,8) me devuelve 3 que es lo que quiero pero no se como
> > diferenciar si lo ha hecho hacia arriba o hacia abajo. Es decir que
> siempre
> > redondee hacia arriba sin distinguir.
> >
> > "Miguel Gonzalez" escribió en el mensaje
> > news:
> > > Redondea hacia abajo, normalmente, y luego le sumas 1
> > >
> > > Saludos!
> > > Miguel
> > >
> > > "Marky" escribió en el mensaje
> > > news:
> > > > Hola todos,
> > > >
> > > > He estado mirando la documentación de vbscript y no he encontrado
> > ninguna
> > > > función que me permita hacer lo que quiero.
> > > >
> > > > El caso es que por ejemplo tengo un numero decimal 3,1 y quiero


que
> > > siempre
> > > > se redondee hacia arriba, me da igual que sea 3,1 o 3,8 siempre se
> tiene
> > > que
> > > > convertir en 4.
> > > >
> > > > Salu2,
> > > >
> > > > Marky
> > > >
> > > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#5 Marky
25/07/2003 - 10:23 | Informe spam
Muchas gracias a los 3. He probado el código de programmer y funciona de
maravilla. Al final lo he dejado asi sin comprobar lo del numero negativo
porque es imposible en el calculo anterior que sea negativo:

if (cajasu - Int(cajasu) >0) then cajasu = Int(cajasu) + 1

Salu2,

Marky
"Miguel Gonzalez" escribió en el mensaje
news:
Gracias José!

... no había pensado en esa posibilidad.

PD para Marky (complementando lo sugerido por José):

En caso de número negativo... pues podrás elegir entre las funciones "Int"


o
"Fix" (la primera trunca hacia abajo (-3.2 devuelve -4) y la segunda hacia
arriba (-3.2 devuelve -3)

Saludos!
Miguel

"Programmer" escribió en el mensaje
news:%
> Aqui hay problema si intentas redondear un número entero.
>
> Solucionalo asi:
>
> Dim miNumero
> IF (Numero - Int(Numero) >0 Then
> miNumero = Int(numero) + 1
> ELSE
> miNumero = Numero
> END IF
>
> POsData: Debes agregar que hacer en caso de que el número sea negativo,
pero
> esta es la idea.
>
>
>
> JOSE DAVID GALVIZ MUÑOZ
> Microsoft Certified Professional
> MS VBASIC
>
> "Miguel Gonzalez" escribió en el mensaje
> news:%
> > Utiliza la función "Int" (que trunca los decimales):
> >
> > Dim miNumero
> > miNumero = Int(numero) + 1
> >
> > Saludos!
> > Miguel
> >
> >
> > "Marky" escribió en el mensaje
> > news:
> > > Todas las funciones que he visto redondean dependiendo de si el


decima
> es
> > > mayor o menor que cinco (como cint, round etc.) pero obligar a
redondear
> > > hacia arriba siempre no sé como.
> > >
> > > Si sale 2,4 la funcion cint(2,4) me devuelve 2 y yo quiero 3. Si


sale
> 2,5
> > la
> > > funcion cint(2,8) me devuelve 3 que es lo que quiero pero no se como
> > > diferenciar si lo ha hecho hacia arriba o hacia abajo. Es decir que
> > siempre
> > > redondee hacia arriba sin distinguir.
> > >
> > > "Miguel Gonzalez" escribió en el mensaje
> > > news:
> > > > Redondea hacia abajo, normalmente, y luego le sumas 1
> > > >
> > > > Saludos!
> > > > Miguel
> > > >
> > > > "Marky" escribió en el mensaje
> > > > news:
> > > > > Hola todos,
> > > > >
> > > > > He estado mirando la documentación de vbscript y no he


encontrado
> > > ninguna
> > > > > función que me permita hacer lo que quiero.
> > > > >
> > > > > El caso es que por ejemplo tengo un numero decimal 3,1 y quiero
que
> > > > siempre
> > > > > se redondee hacia arriba, me da igual que sea 3,1 o 3,8 siempre


se
> > tiene
> > > > que
> > > > > convertir en 4.
> > > > >
> > > > > Salu2,
> > > > >
> > > > > Marky
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida