Ответ 1
Из того, что я помню, используйте функцию Int(). бывший
int(2.99) = 2 ; int(2.1)=2
и так далее.
Что такое эквивалент JavaScript Math.Floor()
в VBA? эта функция должна удалить все десятичные разряды и вернуть только целое число.
Из того, что я помню, используйте функцию Int(). бывший
int(2.99) = 2 ; int(2.1)=2
и так далее.
будьте осторожны, что CInt() фактически округляет число, но Int() не делает.
CInt(1.6) ~~ 2
Int(1.6) ~~ 1
Это Round()
Sub Sample()
Dim dval As Double
dval = 1.12345
Debug.Print Round(dval, 0)
End Sub
0
выше указывает количество десятичных знаков, которые вы хотите.
EDIT:
Альби Патози прав. equivalent
of Math.Floor()
- int()
. У меня создалось впечатление, что вы просто хотели вернуть номер без десятичных знаков. Но затем я посмотрел http://www.w3schools.com/jsref/jsref_floor.asp
Метод floor() округляет число DOWNWARDS до ближайшего целого и возвращает результат.
'~~> 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
РЕЗУЛЬТАТ
ROUND() ~~ INT()
1 ~~ 0
0 ~~ 0
5 ~~ 5
5 ~~ 5
-5 ~~ -6
-6 ~~ -6
Вы также можете вызвать одну из функций листа Excel из VBA:
Application.WorksheetFunction.Floor_Math
Application.WorksheetFunction.Floor
Для положительных значений VBA предлагает Int()
и Fix()
, которые функционально эквивалентны Math.floor()
. Однако для отрицательных значений только Int()
функционально эквивалентен Math.floor()
. Функция VBA Fix()
может быть тем, что вам нужно, если вы заинтересованы только в получении значения, которое находится слева от десятичной точки.
Math.floor(2.8) == 2
Int (2.8) == 2
Исправить (2.8) == 2
Math.floor(-2.8) == -3
Int (-2.8) == -3
Исправить (-2.8) == -2
Int, исправить функции
Возвращает целую часть числа.
Синтаксис
Int(number)
Fix(number)
Требуемый числовой аргумент: Double или любое допустимое числовое значение выражение. Если число содержит Null, возвращается Null.
Замечания
И Int, и Fix удаляют дробную часть числа и возвращают полученное целочисленное значение.
Разница между Int и Fix в том, что если число отрицательное, Int возвращает первое отрицательное целое число, меньшее или равное числу, тогда как Fix возвращает первое отрицательное целое число, большее или равное на номер. Например, Int преобразует -8.4 в -9, а Fix - -8.4 до -8.
Fix(number) is equivalent to:
Sgn(number) * Int(Abs(number))