truncar - redondear vba
Función para quitar los lugares decimales (4)
¿Cuál es el Math.Floor()
JavaScript Math.Floor()
en VBA? esta función debe eliminar todos los lugares decimales y devolver solo un número entero.
De lo que recuerdo usar la función Int (). ex int (2,99) = 2; int (2.1) = 2 y así sucesivamente. google para más información!
Es Round()
Sub Sample()
Dim dval As Double
dval = 1.12345
Debug.Print Round(dval, 0)
End Sub
0
arriba especifica el número de decimales que deseas.
EDITAR:
Albi Patozi tiene razón. El equivalent
de Math.Floor()
es int()
. Tenía la impresión de que solo querías devolver un número sin los decimales. Pero luego busqué en http://www.w3schools.com/jsref/jsref_floor.asp
El método floor () redondea un número HACIA ABAJO al entero más cercano y devuelve el resultado.
''~~> JavaScript floor() Method
''var a=Math.floor(0.60); ~~> 0
''var b=Math.floor(0.40); ~~> 0
''var c=Math.floor(5); ~~> 5
''var d=Math.floor(5.1); ~~> 5
''var e=Math.floor(-5.1); ~~> -6
''var f=Math.floor(-5.9); ~~> -6
Sub Sample()
Dim dval(5) As Double, i As Long
dval(0) = 0.6: dval(1) = 0.4: dval(2) = 5
dval(3) = 5.1: dval(4) = -5.1: dval(5) = -5.9
For i = LBound(dval) To UBound(dval)
Debug.Print Round(dval(i), 0); " ~~ "; Int(dval(i))
Next
End Sub
RESULTADO
RONDA () ~~ INT ()
1 ~~ 0
0 ~~ 0
5 ~~ 5
5 ~~ 5
-5 ~~ -6
-6 ~~ -6
También puede llamar a una de las funciones de la hoja de cálculo de Excel desde VBA:
- Application.WorksheetFunction.Floor_Math
- Application.WorksheetFunction.Floor_Math
tenga cuidado de que CInt () redondee realmente el número, pero Int () no lo haga.
CInt(1.6) ~~ 2
Int(1.6) ~~ 1