Resumen Funcion para redondear

Ahi va una funcion para redondear numeros a cualquier decimal:

'---------------------------------------------------------------------------------------------
' FUNCION: Rounded
'
' DESCRIPCION: Redondea un valor numerico al numero de decimales especificado.
' Valor de resto >= 0 y <= 0.5 ==> Se redondea a la parte entera
' Valor de resto > 0.6 y < 1 ==> Se redondea a la parte entera mas 1
'
' PARAMETROS: xNumero --> Numero que se desea redondear
' niDecimales --> Posicion del decimal en el que se desea realizar
' el redondeo. Si el valor es negativo, se redondea
' por el digito hacia la izquierda.
'
' EJEMPLOS:
' Rounded(1045.543, 2) = 1045.54
' Rounded(1045.545, 2) = 1045.54
' Rounded(1045.545001, 2) = 1045.55
' Rounded(1045.546, 2) = 1045.55
' Rounded(1000.1, 0) = 1000
' Rounded(541, -1) = 540
' Rounded(1871, -2) = 1900
' Rounded(-100.6, 0) = -101
' Rounded(-100.5, 0) = -100
' Rounded(-100.3, 0) = -100
'
' AUTOR: Jose L. Perez Rodriguez
'
' FECHA ULTIMA MODIFICACION: 17-Jun-1996
'
'----------------------------------------------------------------------------------------------
Function Rounded(ByVal xNumero As Variant, ByVal niDecimales As Integer) As Variant
Dim rValor As Double
Dim xRetValue As Variant
Dim lPositivo As Boolean

    xRetValue = xNumero

    ' Numero en Positivo
    rValor = xNumero * Sgn(xNumero)

    ' Dejamos las unidades en la posicion a truncar
    rValor = rValor * (10 ^ niDecimales)

    ' Comprobacion de la parte decimal
    If rValor - Fix(rValor) > 0.5 Then
        rValor = Fix(rValor) + 1
    Else
        rValor = Fix(rValor)
    End If

    'Restaurar las unidades a su posicion original
    rValor = rValor / (10 ^ niDecimales)

    ' Volvemos a colocar el signo que le corresponde
    rValor = rValor * Sgn(xNumero)

    xRetValue = rValor
    Rounded = xRetValue
End Function

----------------------------------------------------------
Salu2.
----------------------------------------------------------
Jose Luis Perez Rodriguez
General Servei, s.a. (Dpto. Informatica)
e-mail: JoseLPR@BigFoot.com




Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com