' ahora se usan 2 límites, si es menor o igual al limite inferior devuelve el entero anterior,
' si es mayor o igual que el limite superior devuelve el entero superior
' si está entre ambos límites devuelve el valor entrado.
Public Function Redondear(ByVal cifra As Double, ByVal LimiteInf As Double, ByVal LimiteSup As Double)
Dim resto As Single = cifra Mod 1
If resto <= LimiteInf Then
Return Math.Floor(cifra)
ElseIf resto >= LimiteSup Then
Return Math.Ceiling(cifra)
Else
Return cifra
End If
End Function
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
' usando 2 limites: superior e inferior
MsgBox(Redondear(234.54, 0.4, 0.6)) ' devuelve 234.54
MsgBox(Redondear(234.54, 0.5, 0.51)) ' devuelve 235
MsgBox(Redondear(234.34, 0.5, 0.51)) ' devuelve 234
MsgBox(Redondear(234.34, 0.25, 0.26)) ' devuelve 235
MsgBox(Redondear(234.54, 0.5, 0.2)) ' devuelve 235 si limite superior es menor que limite inferior este caso es equivalente a usar 1 sólo límite.
end sub