Главная » Функции VBA »
Функции VBA для работы с числовыми значениями
28 Апрель 2011 Дмитрий 110080 просмотров
ABS() — эта функция возвращает абсолютное значение переданного ей числа (то же число, но без знака). Например,ABS(3) иABS(-3) вернут одно и то же значение 3.Int() ,Fix() иRound() позволяют по разному округлять числа:Int() возвращает ближайшее меньшее целое;Fix() отбрасывает дробную часть;Round() округляет до указанного количества знаков после запятой.
Однако Round может вернуть не совсем ожидаемый результат. Если мы выполним такую строку кода
MsgBox Round(2.505, 2)
то результатом будет 2,5, хотя предполагалось получить 2,51. Поэтому порой для округления лучше использовать
Format :MsgBox Format(2.505, "#,##0.00")
Rnd и командаRandomize используются для получения случайных значений (очень удобно для генерации имен файлов и в других ситуациях). Перед вызовом функцииRnd() необходимо выполнить командуRandomize для инициализации генератора случайных чисел.Dim lRundNum As Long, lMinNum As Long, lMaxNum As Long lMinNum = 1: lMaxNum = 100 Randomize lRundNum = Int(lMinNum + (Rnd() * lMaxNum)) MsgBox lRundNum
Sgn() - позволяет вернуть информацию о знаке числа. Возвращает 1, если число положительное, -1, если отрицательное и 0, если проверяемое число равно 0.Mod() - Делит два числа и возвращает только остаток. Например, выражение8 вернет число 2, т.к. без остатка(в виде дроби у результата деления) 8 делится на 3 только до 2-х(Mod 38 / 3 = 2,66666666666667 ).
При этом функция Mod учитывает и знак числа - если первое число или оба числа отрицательные, то результатом будет отрицательное число. Если же отрицательное только второе число - то результат будет положительным числом.
При попытке получить остаток при делении чисел с плавающей запятой результат может быть не тем, который ожидается, потому что перед выполнением деления оба числа округляются по математическим законам(5 и выше до большего, 4 и ниже - до меньшего). Например, выражение8 Mod 3.5 вернет 0, а выражение8 Mod 3.4 - 2.
Статья помогла? Сделай твит, поделись ссылкой с друзьями!