Функция для удаления десятичных знаков

Что такое эквивалент JavaScript Math.Floor() в VBA? эта функция должна удалить все десятичные разряды и вернуть только целое число.

Ответы

Ответ 1

Из того, что я помню, используйте функцию Int(). бывший

int(2.99) = 2 ; int(2.1)=2

и так далее.

Ответ 2

будьте осторожны, что CInt() фактически округляет число, но Int() не делает.

CInt(1.6) ~~ 2
Int(1.6) ~~ 1

Ответ 3

Это 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

Ответ 5

Для положительных значений 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

Ссылка на Office VBA

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))