Тема: Аналог функции EXCEL TRUC
уважаемые господа, помогите!
Как в VBA усечь число до целого, отбрасывая дробную числа так, что остается целое число. В EXCEL есть функция TRUNC-там все просто...
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Аналог функции EXCEL TRUC
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
уважаемые господа, помогите!
Как в VBA усечь число до целого, отбрасывая дробную числа так, что остается целое число. В EXCEL есть функция TRUNC-там все просто...
Есть еще функция:
Fix(number)
Различие между Int и Fix в том, что для отрицательного значения аргумента фуркция Int возвращает ближайшее отрицательное целое число меньшее либо равное указанному в аргументе, а Fix - большее либо равное. Например:
Int(-8,4) = -9
Ашч(-8,4) = -8
Под каждую задачу следует использоватьнаиболее подходящую функцию:
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 округляет в соответствии с правилами арифметики.
> 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'~
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, как видишь не все так просто.
> fixo
Кстати, Help трактует действие функции Fix как сочетание следующих функций:
Fix(number)=Sgn(number) * Int(Abs(number))
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Аналог функции EXCEL TRUC
Форум работает на PunBB, при поддержке Informer Technologies, Inc