Разное

Математические функции vba: Математические функции (Visual Basic для приложений)

Производные математические функции (Visual Basic для приложений)

Twitter LinkedIn Facebook Адрес электронной почты

  • Статья
  • Чтение занимает 2 мин

Ниже приведен список неинтринсических математических функций, которые могут быть производными от встроенных математических функций.

ФункцияПроизводные эквиваленты
СекансSec(X) = 1 / Cos(X)
КосекансCosec(X) = 1 / Sin(X)
КотангенсCotan(X) = 1 / Tan(X)
АрксинусArcsin(X) = Atn(X / Sqr(-X * X + 1))
АрккосинусArccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
АрксекансArcsec(X) = Atn(X / Sqr(X * X - 1)) + Sgn((X) - 1) * (2 * Atn(1))
АрккосекансArccosec(X) = Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1))
АрккотангенсArccotan(X) = Atn(X) + 2 * Atn(1)
Гиперболический синусHSin(X) = (Exp(X) - Exp(-X)) / 2
Гиперболический косинусHCos(X) = (Exp(X) + Exp(-X)) / 2
Гиперболический тангенсHTan(X) = (Exp(X) - Exp(-X)) / (Exp(X) + Exp(-X))
Гиперболический секансHSec(X) = 2 / (Exp(X) + Exp(-X))
Гиперболический косекансHCosec(X) = 2 / (Exp(X) - Exp(-X))
Гиперболический котангенсHCotan(X) = (Exp(X) + Exp(-X)) / (Exp(X) - Exp(-X))
АреасинусHArcsin(X) = Log(X + Sqr(X * X + 1))
АреакосинусHArccos(X) = Log(X + Sqr(X * X - 1))
АреатангенсHArctan(X) = Log((1 + X) / (1 - X)) / 2
АреасекансHArcsec(X) = Log((Sqr(-X * X + 1) + 1) / X)
АреакосекансHArccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) + 1) / X)
АреакотангенсHArccotan(X) = Log((X + 1) / (X - 1)) / 2
Логарифм с основанием NLogN(X) = Log(X) / Log(N)
  • Функции (Visual Basic для приложений)

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Математические функции

Для наиболее часто встречающихся функций в алгоритмический язык включаются программы для их вычисления.В таблице 3 приведены математические функции, имеющиеся в VBA. В этой таблице N означает любое численное выражение; все аргументы функций являются обязательными, если только не указано иначе.

Таблица 3. Математические функции VBA

Функции (аргументы)

Возвращает/ действие

1

2

Abs(N)

Возвращает абсолютное значение N

Atn(N)

Возвращает арктангенс N как угол в радианах

Сos(N)

Косинус угла N, где N это угол, измеряемый в радианах

Sin(N)

Возвращает синус угла; N – это угол, измеряемый в радианах

Sqr(N)

Возвращает корень квадратный из N. VBA отображает ошибку, исполнения, если N – отрицательное

Tan(N)

Возвращает тангенс угла; N – угол в радианах

Exp(N)

Возвращает константу е, возведенную в степень N. (е – это основание натурального логарифма)

Продолжение табл. 3

1

2

Fix(N)

Возвращает целую часть N. Fix не округляет число, а отбрасывает любую дробную часть. Если N является отрицательным, Fix возвращает ближайшее отрицательное целое, большее, чем или равное N

Int(N)

Возвращает целую часть N. Int не округляет число, а отбрасываетлюбую дробную часть. Если N является отрицательным, Int возвращает ближайшее отрицательное целое меньшее, чем или равное N

Log(N)

Возвращает натуральный логарифм N

Rnd(N)

Возвращает случайное число; аргумент является необязательным. Функцию Rnd используется только после инициализации VBA-генератора случайных чисел оператором Randomize

Sgn(N)

Возвращает знак числа:

-1, если N отрицательное;

1, если N – положительное;

0, если N равно 0

Дополнительные тригонометрические функции можно выводить из базовых математических функций VBA. Например, если необходимо вычислить котангенс угла, для его нахождения можно использовать формулу 1/Таn(х).

Выражения состоят из одной и долее следующих частей

– константы;

– переменные;

– знаки операций;

– элементы массива;

– функции.

Выражения используются для выполнения вычислений и сравнения значений, для предоставления переменных в качестве аргументов различным функциям и процедурам VBA. Все выражения Visual Basic вычисляются до значения, имеющего один из типов данных Visual Basic.

При вычислении сложных выражений VBA следует таким правилам:

– Части выражения, заключенные в круглые скобки, всегда вычисляются в первую очередь. Если выражение, заключенное в круглые скобки, является другим сложным выражением, VBA применяет эти же правила к выражению в круглых скобках;

– Конкретные операции выполняются в зависимости от иерархии операторов;

– Когда операторы имеют равный уровень приоритета, они вычисляются в порядке слева направо.

VBA вычисляет выражения в следующем порядке:

– Знаки арифметических операций.

Возведение в степень, наивысший приоритет

Унарный минус (присвоение знака числу)

*, /

Умножение и деление имеют равные приоритеты; они вычисляются по мере появления в выражении слева направо

\

Вычисляет результат целочисленного деления первого математического выражения (X) на второе (Y). Перед вычислением значение каждого выражения округляется до целых по правилам математики.

Mod

Вычисляет остаток от деления первого математического выражения (X) на второе (Y). Перед делением значение каждого выражения округляется до целых по правилам математики

+, —

Сложение и вычитание имеют равный приоритет; они вычисляются по мере появления в выражении слева направо

Продолжение табл. 4

1

2

&

Сложение строк выполняется после любых арифметических операций в выражении и перед любыми операциями сравнения или логическими операциями

<, <=, >, >=, =, <>

Все операторы сравнения имеют равные приоритеты и вычисляются по мере появления в выражении слева направо. Для группирования операторов сравнения в выражениях надо использовать круглые скобки

Not

Логическое отрицание

And

Функция И (логическое умножение)

Or

Функция ИЛИ (Логическое сложение)

Xor

Исключающее ИЛИ

Eqv

Функция эквивалентности

Imp

Функция импликации

Математические выражения в программе записываются в одну строку. В строке должно быть не более 255 символов без учета пробелов. Главную роль в записи математических выражений играет правильное использование скобок. Они не только указывают очередность действий, но и отделяют аргументы математических функций, поэтому скобок бывает больше, чем других служебных знаков. Арифметическое выражение состоит из переменных, констант, функций и знаков арифметических действий.

Проверять длинные записи на предмет количества скобок становится легче, если знать правило: в любом выражении количество левых скобок должно быть равно количеству правых. Если равенства нет, то программа выдает сообщение об ошибке. Примеры записи некоторых арифметических выражений приведены в табл. 5.

Таблица 5

Функция

Арифметическое выражение

2

3

PI = 

PI = 4*ATN(1)

+3,151015

Y = (A+B)/(A*X-2)+3. 3-LOG(X)/LOG(10))

Математические функции — Visual Basic

Редактировать

Твиттер LinkedIn Фейсбук Электронная почта

  • Статья
  • 5 минут на чтение

Методы класса System.Math предоставляют тригонометрические, логарифмические и другие распространенные математические функции.

В следующей таблице перечислены методы класса System.Math. Вы можете использовать их в программе Visual Basic:

Метод .NET Описание
Абс Возвращает абсолютное значение числа.
Акос Возвращает угол, косинус которого равен указанному числу.
Асин Возвращает угол, синус которого равен указанному числу.
Атан Возвращает угол, тангенс которого равен указанному числу.
Атан2 Возвращает угол, тангенс которого является частным двух заданных чисел.
БигМул Возвращает полное произведение двух 32-битных чисел.
Потолок Возвращает наименьшее целочисленное значение, которое больше или равно указанному Decimal или Double .
Кос Возвращает косинус указанного угла.
Кош Возвращает гиперболический косинус указанного угла.
ДивРем Возвращает частное двух 32-битных или 64-битных целых чисел со знаком, а также возвращает остаток в выходном параметре.
Опыт Возвращает e (основание натуральных логарифмов), возведенное в указанную степень.
Этаж Возвращает наибольшее целое число, меньшее или равное указанному числу Decimal или Double .
Остаток IEEE Возвращает остаток от деления указанного числа на другое указанное число.
Журнал Возвращает натуральный логарифм (по основанию e) указанного числа или логарифм указанного числа по указанному основанию.
Лог10 Возвращает логарифм указанного числа по основанию 10.
Макс. Возвращает большее из двух чисел.
Мин. Возвращает меньшее из двух чисел.
Мощность Возвращает указанное число в указанной степени.
Круглый Возвращает значение Decimal или Double , округленное до ближайшего целого числа или до указанного количества дробных цифр.
Знак Возвращает Целое число , указывающее знак числа.
Грех Возвращает синус указанного угла.
Синх Возвращает гиперболический синус указанного угла.
Кв. Возвращает квадратный корень указанного числа.
Желто-коричневый Возвращает тангенс указанного угла.
Танх Возвращает гиперболический тангенс указанного угла.
Усечение Вычисляет целую часть указанного числа Decimal или Double .

В следующей таблице перечислены методы класса System.Math, которые не существуют в .NET Framework, но добавлены в .NET Standard или .NET Core:

Метод .NET Описание Доступно в
Акош Возвращает угол, гиперболический косинус которого равен указанному числу. Начиная с .NET Core 2.1 и .NET Standard 2. 1
Асинь Возвращает угол, гиперболический синус которого равен указанному числу. Начиная с .NET Core 2.1 и .NET Standard 2.1
Атанх Возвращает угол, гиперболический тангенс которого равен указанному числу. Начиная с .NET Core 2.1 и .NET Standard 2.1
БитДекремент Возвращает следующее наименьшее значение, которое сравнивается меньше чем х . Начиная с .NET Core 3.0
Приращение битов Возвращает следующее наибольшее значение, которое превышает x . Начиная с .NET Core 3.0
ЦБ Возвращает кубический корень указанного числа. Начиная с .NET Core 2.1 и .NET Standard 2.1
Зажим Возвращает значение , ограниченное включенным диапазоном мин и макс . Начиная с . NET Core 2.0 и .NET Standard 2.1
CopySign Возвращает значение с величиной x и знаком y . Начиная с .NET Core 3.0
Плавное умножениеДобавить Возвращает (x * y) + z, округленное как одна троичная операция. Начиная с .NET Core 3.0
ИлогБ Возвращает целочисленный логарифм по основанию 2 указанного числа. Начиная с .NET Core 3.0
Лог2 Возвращает логарифм по основанию 2 указанного числа. Начиная с .NET Core 3.0
Максимальное значение Возвращает большее значение двух чисел двойной точности с плавающей запятой. Начиная с .NET Core 3.0
Минимальная величина Возвращает меньшую величину двух чисел двойной точности с плавающей запятой. Начиная с .NET Core 3.0 9n вычисляется эффективно. Начиная с . NET Core 3.0

Чтобы использовать эти функции без квалификации, импортируйте пространство имен System.Math в свой проект, добавив следующий код в начало исходного файла:

 Imports System.Math
 

Пример — Abs

В этом примере используется метод Abs класса Math для вычисления абсолютного значения числа.

 Dim x As Double = Math.Abs(50.3)
Dim y As Double = Math.Abs ​​(-50,3)
Console.WriteLine(x)
Console.WriteLine(y)
' Этот пример производит следующий вывод:
50,3
50,3
 

Пример — Atan

В этом примере используется метод Atan класса Math для вычисления значения числа пи.

 Публичная функция GetPi() как двойная
    ' Вычислите значение числа Пи.
    Возврат 4.0 * Мат.Атан(1.0)
Конечная функция
 

Примечание

Класс System.Math содержит постоянное поле Math.PI. Вы можете использовать его, а не вычислять.

Пример — Cos

В этом примере метод Cos класса Math используется для возврата косинуса угла.

 Секунда общей функции (угол как двойной) Как двойной
    ' Вычислите секанс угла в радианах.
    Возврат 1.0 / Math.Cos(угол)
Конечная функция
 

Пример — Exp

В этом примере метод Exp класса Math используется для возврата e в степени.

 Общественная функция Sinh (угол как двойной) Как двойной
    ' Вычислите гиперболический синус угла в радианах.
    Возврат (Math.Exp(угол) - Math.Exp(-угол)) / 2.0
Конечная функция
 

Пример — Log

В этом примере используется метод Log класса Math для возврата натурального логарифма числа.

 Публичная функция Asinh(значение как двойное) как двойное
    ' Вычислите обратный гиперболический синус в радианах.
    Возврат Math.Log(значение + Math.Sqrt(значение * значение + 1.0))
Конечная функция
 

Пример — округление

В этом примере используется метод Round класса Math для округления числа до ближайшего целого числа.

 Dim myVar2 As Double = Math.Round(2.8)
Console. WriteLine(myVar2)
' Код выдает следующий результат:
3
 

В этом примере метод Sign класса Math используется для определения знака числа.

 Dim mySign1 As Integer = Math.Sign(12)
Dim mySign2 As Integer = Math.Sign(-2.4)
Dim mySign3 As Integer = Math.Sign(0)
Console.WriteLine(mySign1)
Console.WriteLine(mySign2)
Console.WriteLine(mySign3)
' Код выдает следующий результат:
' 1
'-1
0
 

Пример — Sin

В этом примере метод Sin класса Math используется для возврата синуса угла.

 Общая функция Csc(угол как двойной) Как двойной
    ' Вычислить косеканс угла в радианах.
    Возврат 1.0 / Math.Sin(угол)
Конечная функция
 

Пример — Sqrt

В этом примере используется метод Sqrt класса Math для вычисления квадратного корня числа.

 Dim mySqrt1 As Double = Math.Sqrt(4)
Dim mySqrt2 As Double = Math.Sqrt(23)
Dim mySqrt3 As Double = Math.Sqrt(0)
Dim mySqrt4 As Double = Math.Sqrt(-4)
Console.WriteLine(mySqrt1)
Console.WriteLine(mySqrt2)
Console. WriteLine(mySqrt3)
Console.WriteLine(mySqrt4)
' Код выдает следующий результат:
2
4,79583152331272
0
' НаН
 

Пример — Желто-коричневый

В этом примере метод Tan класса Math используется для возврата тангенса угла.

 Общедоступная функция Ctan(угол как двойной) Как двойной
    ' Вычислить котангенс угла в радианах.
    Возврат 1.0 / Math.Tan(угол)
Конечная функция
 

См. также

  • Рнд
  • Рандомизировать
  • НаН
  • Производные математические функции
  • Арифметические операторы

Обратная связь

Просмотреть все отзывы о странице

Выполнение расчетов в VBA

На этой странице перечислены элементы, которые можно использовать в вычислениях в VBA. В первую очередь это арифметические операторы. В дополнение к этим вы можете использовать функции, доступные в VBA и, возможно, в приложении Office, или написать свои собственные. Данные, операторы операнды или аргумент функции, может быть литерал (число) , переменные, константы или свойства объекта числового типа, или другие выражения, такие как функции, возвращающие числа.

  • Арифметические операторы
  • Скобки
  • Деление и округление
  • Пользовательские функции
  • Математические функции
  • Финансовые функции
  • Использование функций рабочего листа Excel
  • Использование кода VBA IntelliSense для расчетов

Арифметические операторы

В таблице ниже вы видите некоторые математические операции, такие как сложение, вычитание, умножение, деление, возведение в степень. Для написания кода математических операций мы используем различные арифметические операторы. Эти операторы очень похожи на обычные арифметические операторы. Операторы плюс и минус одинаковы. Обратите внимание, что в операторе умножения используется символ *, а в операторе деления — символ /.

— A + B. — B даст -8
Оператор Описание Пример A = 2, B = 10
+ Добавлены две операнды A + B будет выдавать 12
* Умножьте оба операнда A * B даст 20
/ Разделите нумератор от Denumerator B / AА даст 100

Скобки

Важно определить порядок операций со скобками. Без указания порядка VBA обрабатывает операции как в обычной арифметике. Примеры:

 6 + 4 * 7 - 3 равно 6 + 28 - 3 (поскольку умножение идет первым) дает 31.
(6 + 4) * (7 - 3)    равно 10 * 4 дает 40.
((6 + 4) * 7)) - 3 равно 10 * 7 - 3 дает 67. 

Деление и округление

Ответ = 11/2 'дает 5,5

В этом примере ответ задан как целое число. Если вы попытаетесь задать дробь, число будет округлено в большую или меньшую сторону до ближайшего целого числа. Если число одинаково близко к двум целым числам, значение округляется до ближайших 9.0531 даже целое. Такое поведение сводит к минимуму ошибки округления, возникающие в результате последовательного округления среднего значения в одном направлении. В следующем коде показаны примеры округления.

 Ответ = 5,9 => 6
    Ответ = 5.5 => 6 'Visual Basic использует банковское округление (в сторону ближайшего четного числа)'.
    Ответ = 4,5 => 4 ' Если вы хотите округлить, используйте половинную корректировку. Добавьте 0,5 к числу, которое необходимо округлить, и используйте функцию Round().
    Ответ = 9 + 0,5 / 2 

Оператор \ — обратная косая черта — выполняет целочисленное деление.

 Ответ = 10 / 4 'дает 2,5'
Ответ = 10 \ 4 'дает 2'
Ответ = 5,423 / 1 'дает 5,423'
Ответ = 5,423\1 'дает 5' 

Родственным оператором является оператор MOD. Он возвращает остаток. Примеры:

 6 Мод. 4 = 2
12 Mod 4 = 0 

Пользовательские функции

Хотя VBA и Excel уже предоставляют множество функций, обычно пишут собственные для ваших конкретных требований. Например, вы можете захотеть иметь функцию, которая вычисляет налог с продаж:

Функция SalesTax (TotalInvoice As Double, TaxPercentage As Double)
Налог с продаж = Общий счет-фактура - Общий счет-фактура / (1 + Процент налога)
Завершить функцию 

Дополнительная информация: Вызов функции

Математические функции

Функция Abs Абсолютное значение

На панели инструментов Code VBA выберите  VBA » Math » Abs » 

 dblAbs = Abs(50.3) 'Возвращает 50.3.'
dblAbs = Abs(-50.3) 'Возвращает 50.3.'
 

Обзор математических функций

Обзор финансовых функций

Использование функций рабочего листа Excel

В Excel есть очень большой набор встроенных функций, которые вы также можете использовать.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *