Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Multriplo Superior

Estas en el tema de Multriplo Superior en el foro de Visual Basic clásico en Foros del Web. Hola Amigos: Estoy intentando traspasar la funcion de Excel a Visual Basic. (multiplo.superior) lo que intento hacer es redondear un numero decimal a multiplos de ...
  #1 (permalink)  
Antiguo 28/09/2006, 02:40
 
Fecha de Ingreso: septiembre-2006
Mensajes: 1
Antigüedad: 18 años, 7 meses
Puntos: 0
Multriplo Superior

Hola Amigos:

Estoy intentando traspasar la funcion de Excel a Visual Basic. (multiplo.superior)

lo que intento hacer es redondear un numero decimal a multiplos de 0.05,
es decir: 25.64 -> 25.65
30.36 -> 30.40

Alguien me podria decir como hacer esto con visual?



Gracias.
  #2 (permalink)  
Antiguo 29/09/2006, 02:17
 
Fecha de Ingreso: noviembre-2005
Mensajes: 751
Antigüedad: 19 años, 5 meses
Puntos: 13
Hola

Prueba con lo siguiente:

Código:
Public Function Comprobar(ByVal num1 As Single) As Single

    Dim x As Single
    
    x = Round((num1 / 0.05), 2) - Int(Round(num1 / 0.05, 2))
    
    Comprobar = x
    
End Function

Private Sub Command1_Click()

    Dim num1 As Single
    Dim resul As Single
    
    num1 = Text1.Text
    
    resul = Comprobar(num1)
    
    While resul <> 0
        num1 = num1 + 0.01
        resul = Comprobar(num1)
    Wend
    
    Text2.Text = num1
    
End Sub
Con la función compruebo si el resto es cero, en tal caso, quiere decir que se ha encontrado el número múltiplo de 0.05, si no es cero, continuo sumando 0.01 al número, y así hasta encontrar el múltiplo (que será cuando la función devuelva 0).

Yo he creado un formulario con dos textbox, uno para introducir el dato (text1) y otro para mostrar el resultado (text2) y un botón para realizar el cálculo (Command1). Si te creas un formulario con esos controles y pegas el código puedes ver como funciona.

--Saludos--
  #3 (permalink)  
Antiguo 29/09/2006, 05:06
Avatar de peloteitor  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 849
Antigüedad: 21 años, 5 meses
Puntos: 1
Tb podrías comprobar si el número termina en 0 ó 5.

Código:
Function Comprobar(ByVal num as single) as Boolean

   Dim s as String = num.ToString

   Return s.EndsWith("0") Or s.EndsWith("5")

End Function
__________________
El sexo sin amor es una experiencia vacía. Pero como experiencia vacía es una de las mejores.

Woody Allen
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:53.