Visual Basic Foro

Programación => Visual Basic 6 => Mensaje iniciado por: javierjava en Agosto 09, 2012, 06:49:31 pm

Título: Aproximar decimales
Publicado por: javierjava en Agosto 09, 2012, 06:49:31 pm
Que tal alguien me podría echar una mano de cómo redondear decimales  de la siguiente manera
De 0.01 a 0.24 que aproxime a 25 ahora si es 0.26 a 0.49 que aproxime a 0.50 de 0.51 a 0.74 que sea 0.75 de 0.76 que sea 1.00

Gracias   ;D


Título: Re:Aproximar decimales
Publicado por: cobein en Agosto 09, 2012, 08:37:55 pm
Arme una funcion para redondear de manera arbitraria, podes redondear como quieras como por ejemplo cada 0.25 (cuartos) o podria ser cualquier cosa como ser 0.2 (quintos)

Código: [Seleccionar]
Private Sub Form_Load()
    Debug.Print RoundArbitrary(1.19, 0.25)
End Sub

Private Function RoundArbitrary(ByVal dVal As Double, _
    Optional ByVal dAproximation As Double = 0.25) As Double
    RoundArbitrary = Round(((dVal / dAproximation) + 0.5)) * dAproximation
End Function
Título: Re:Aproximar decimales
Publicado por: E N T E R en Agosto 09, 2012, 09:15:10 pm

Aca hay otro por si te sirve.

Código: (VB) [Seleccionar]
Public Function Redondear(n1 As Double, n2 As Long) As Double
    Dim t1 As Double
    t1 = (n1 * (10 ^ (n2))) - Int(n1 * (10 ^ (n2)))
    If t1 >= 0.5 Then
    ' Debug.Print "sumamos"
    Redondear = (Int(n1 * (10 ^ (n2))) + 1) / (10 ^ (n2))
    Else
    ' Debug.Print "restamos"
    Redondear = Int(n1 * (10 ^ (n2))) / (10 ^ (n2))
    End If
End Function

Private Sub Command1_Click()
    Debug.Print Redondear(10.415, 2)
End Sub
Título: Re:Aproximar decimales
Publicado por: javierjava en Agosto 09, 2012, 11:28:59 pm
Que bien justo lo que necesito

gracias cobein  y E N T E R