Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado 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
-
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)
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
-
Aca hay otro por si te sirve.
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
-
Que bien justo lo que necesito
gracias cobein y E N T E R