Тема: Аналог функции EXCEL TRUC

уважаемые господа, помогите!
Как в VBA усечь число до целого, отбрасывая дробную числа так, что остается целое число. В EXCEL есть функция TRUNC-там все просто...

Re: Аналог функции EXCEL TRUC

См функции: Int и cInt.

Re: Аналог функции EXCEL TRUC

Есть еще функция:
Fix(number)
Различие между Int и Fix в том, что для отрицательного значения аргумента фуркция Int возвращает ближайшее отрицательное целое число меньшее либо равное указанному в аргументе, а Fix - большее либо равное. Например:
Int(-8,4) = -9
Ашч(-8,4) = -8

Re: Аналог функции EXCEL TRUC

Под каждую задачу следует использоватьнаиболее подходящую функцию:
    Dim a As Integer
    a = Int(99.8)   '99
    a = CInt(99.8)   '100
    a = Fix(99.8)   '99
    a = Int(99.2)   '99
    a = CInt(99.2)   '99
    a = Fix(99.2)   '99
    a = Int(-99.2)   '-100
    a = CInt(-99.8)   '-100
    a = Fix(-99.2)   '-99
    a = Int(-99.8)   '-100
    a = CInt(-99.8)   '-100
    a = Fix(-99.8)   '-99
В дополнение:
Эксперимент показал, что CInt округляет в соответствии с правилами арифметики.

Re: Аналог функции EXCEL TRUC

> serg
Типа:

Function Cut(test_number As Double, number_of_digits As Integer) As Double
       Cut = Fix(test_number * (10 ^ number_of_digits)) / (10 ^ number_of_digits)
End Function

Оно?
~'J'~

Re: Аналог функции EXCEL TRUC

EXCEL, Help:
TRUNC(number,num_digits)
Number   is the number you want to truncate.
Num_digits   is a number specifying the precision of the truncation. The default value for num_digits is 0 (zero).
Remark
TRUNC and INT are similar in that both return integers. TRUNC removes the fractional part of the number. INT rounds numbers down to the nearest integer based on the value of the fractional part of the number. INT and TRUNC are different only when using negative numbers: TRUNC(-4.3) returns -4, but INT(-4.3) returns -5 because -5 is the lower number.
или, говоря по-человечески:
Различие между INT и TRUNC в том, что для отрицательного значения аргумента фуркция INT возвращает ближайшее отрицательное целое число меньшее либо равное указанному в аргументе, а TRUNC — большее либо равное. Например:
Example:
Formula Description (Result)
=TRUNC(-4.3)Integer part of -4,3 (-4)
=INT(-4.3)Integer part of -4,3 (-5)
=TRUNC(8.9) Integer part of 8.9 (8)
=TRUNC(-8.9) Integer part of -8.9 (-8)
=TRUNC(PI()) Integer part of pi (3)
То-есть, аналогом функции  TRUNC из EXCEL в VB является функция Fix.
serg, как видишь не все так просто.

Re: Аналог функции EXCEL TRUC

> fixo
Кстати, Help трактует действие функции Fix как сочетание следующих функций:

Fix(number)=Sgn(number) * Int(Abs(number))

Re: Аналог функции EXCEL TRUC

Спасибо Всем за подробнейшую информацию.