elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Redondear Multiplos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Redondear Multiplos  (Leído 7,317 veces)
CM2ARY

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Redondear Multiplos
« en: 10 Agosto 2017, 19:45 pm »

Saludos Foro VB.NET

Estoy buscando una fórmula para redondear un número en exceso por el multiplo que se desee. Algo así como la función de excel REDOND.MULT. Espero que alguien me pueda ayudar en eso.

Gracias


En línea

TickTack


Desconectado Desconectado

Mensajes: 434


CipherX


Ver Perfil
Re: Redondear Multiplos
« Respuesta #1 en: 10 Agosto 2017, 22:19 pm »

A que te referies con "número en exceso"?

Saludos


En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.391


Ver Perfil
Re: Redondear Multiplos
« Respuesta #2 en: 11 Agosto 2017, 02:53 am »

Tienes varias opciones de redondeo...

La función adecuada depende de como esperes que responda, también con los números negativos.

Si Siempre ha de ser por exceso, la función es Ceiling.
Si lo que deseas es un redondeo al número más próximo, la función es Round.
Si siempre ha de ser la parte entera (eliminar los decimales), la función es Fix.
Si siempre ha de ser el valor más bajo, la función es Int, o Floor.

Aquí un ejemplo de prueba y comentado el resultado que arroja:
Código
  1. Dim x as single, y as integer
  2.        x = 15.62
  3.        y = Int(x) ' 15
  4.        y = Fix(x) ' 15
  5.        y = Math.Ceiling(x) ' 16
  6.        y = Math.Floor(x)   ' 15
  7.        y = Math.Round(x)   ' 16
  8.  
  9.        x = 15.32
  10.        y = Int(x) ' 15
  11.        y = Fix(x) ' 15
  12.        y = Math.Ceiling(x) ' 16
  13.        y = Math.Floor(x)   ' 15
  14.        y = Math.Round(x)   ' 15
  15.  
  16.        x = -15.62
  17.        y = Int(x) ' -16
  18.        y = Fix(x) ' -15
  19.        y = Math.Ceiling(x) ' -15
  20.        y = Math.Floor(x)   ' -16
  21.        y = Math.Round(x)   ' -16
  22.  
  23.        x = -15.32
  24.        y = Int(x) ' -16
  25.        y = Fix(x) ' -15
  26.        y = Math.Ceiling(x) ' -15
  27.        y = Math.Floor(x)   ' -16
  28.        y = Math.Round(x)   ' -15


p.d.: Para hacelro con un múltiplo (si mal no entendí, ya me dirás)... sería así un ejemplo:
Código
  1. X = (20\(20\3)) * Math.ceiling(20/3)
  2. (20\6) = 3
  3. (20/3) = 6.6666 : Math.Ceiling(6.66666) = 7
  4. x = (3 * 7) = 21
« Última modificación: 11 Agosto 2017, 03:00 am por NEBIRE » En línea

CM2ARY

Desconectado Desconectado

Mensajes: 13


Ver Perfil
Re: Redondear Multiplos
« Respuesta #3 en: 13 Agosto 2017, 02:11 am »

Gracias a todos. Resolví con este.

Código
  1. Dim RoundXMultiple As Integer
  2. RoundXMultiple = Math.Round(Num / Múltiplo) * Múltiplo

« Última modificación: 13 Agosto 2017, 02:14 am por Leiray » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿determinar multiplos? « 1 2 »
Programación C/C++
Bledniss 17 34,632 Último mensaje 27 Abril 2011, 20:26 pm
por RyogiShiki
(Solucionado)Redondear en c++. Ayuda
Programación C/C++
theseniorman 2 2,691 Último mensaje 4 Junio 2014, 20:13 pm
por theseniorman
Multiplos del 5 con modulares en C « 1 2 »
Programación C/C++
estudiante_1 11 5,895 Último mensaje 20 Julio 2015, 16:59 pm
por estudiante_1
Redondear Formato Numérico en un Listview en VB.NET
Programación Visual Basic
mangelperu 0 1,441 Último mensaje 29 Mayo 2019, 22:44 pm
por mangelperu
[C++] Redondear un entero positivo a la centena más proxima « 1 2 »
Programación C/C++
djpacheco3 10 8,963 Último mensaje 7 Septiembre 2019, 00:11 am
por Loretz
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines