Математические функции — это инструменты для выполнения различных арифметических и числовых операций. Они поддерживают высокую точность вычислений и включают как базовые операции, так и более специализированные. Рассмотрим их подробнее.
math.add
Выполняет сложение двух чисел. Эквивалент операции +
.
Сигнатура: math.add(num1 number, num2 number, precision int = 12) number
Аргументы:
num1
— первое слагаемое.num2
— второе слагаемое.precision
— точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.Результат: Сумма чисел с заданной точностью.
Пример использования:
$a = math.add(1.5, 3.5) // $a равно 5
$a = 1.5 + 3.5 // то же, что и предыдущая строка
$a = math.add(1.000006, 2.1, 5) // $a равно 3.10001
math.sub
Выполняет вычитание двух чисел. Эквивалент операции -
.
Сигнатура: math.sub(num1 number, num2 number, precision int = 12) number
Аргументы:
num1
— уменьшаемое.num2
— вычитаемое.precision
— точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.Результат: Разность чисел с заданной точностью.
Пример использования:
$a = math.sub(1.5, 3.5) // $a равно -2
$a = 1.5 - 3.5 // то же, что и предыдущая строка
$a = math.sub(2.100006, 1.1, 5) // $a равно 1.00001
math.mul
Выполняет умножение двух чисел. Эквивалент операции *
.
Сигнатура: math.mul(num1 number, num2 number, precision int = 12) number
Аргументы:
num1
— первый множитель.num2
— второй множитель.precision
— точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.Результат: Произведение чисел с заданной точностью.
Пример использования:
$a = math.mul(1.5, 3.5) // $a равно 5.25
$a = 1.5 * 3.5 // то же, что и предыдущая строка
$a = math.mul(1.2345, 1.234, 5) // $a равно 1.52337
math.div
Выполняет деление двух чисел. Эквивалент операции /
.
Сигнатура: math.div(num1 number, num2 number, precision int = 12) number
Аргументы:
num1
— делимое.num2
— делитель.precision
— точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.Результат: Частное двух чисел с заданной точностью.
Пример использования:
$a = math.div(1.5, 3.5) // $a равно 0.428571428571
$a = 1.5 / 3.5 // то же, что и предыдущая строка
$a = math.div(1, 3, 5) // $a равно 0.33333
math.idiv
Выполняет целочисленное деление двух чисел. Эквивалент операции \
.
Сигнатура: math.idiv(num1 number, num2 number) int
Аргументы:
num1
— делимое.num2
— делитель.Результат: Целая часть частного.
Пример использования:
$a = math.idiv(2.5, 0.3) // $a равно 8
$a = 2.5 \ 0.3 // то же, что и предыдущая строка
math.mod
Вычисляет остаток от деления двух чисел. Эквивалент операции %
.
Сигнатура: math.mod(num1 number, num2 number, precision int = 12) number
Аргументы:
num1
— делимое.num2
— делитель.precision
— точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.Результат: Остаток от деления.
Пример использования:
$a = math.mod(3.5, 1.5) // $a равно 0.5
$a = 3.5 % 1.5 // то же, что и предыдущая строка
$a = math.mod(1/3, 2/7, 5) // $a равно 0.04762
math.pow
Возводит число в указанную степень. Эквивалент операции **
.
Сигнатура: math.pow(base number, power number, precision int = 12) number
Аргументы:
base
— основание.power
— показатель степени.precision
— точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.Результат: Число, возведенное в степень.
Пример использования:
$a = math.pow(1.5, 3.5) // $a равно 4.133513940947
$a = 1.5 ** 3.5 // то же, что и предыдущая строка
$a = math.pow(1.3, 7.1, 5) // $a равно 0.44166
math.sqrt
Извлекает квадратный корень из числа. Возвращает ошибку, если число отрицательное.
Сигнатура: math.sqrt(num number, precision int = 12) number
Аргументы:
num
— число для извлечения корня.precision
— точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.Результат: Квадратный корень числа.
Пример использования:
$a = math.sqrt(3.14) // $a равно 1.772004514667
$a = math.sqrt(1.7, 5) // $a равно 0.30384
math.round
Округляет число до указанного знака после запятой.
Сигнатура: math.round(num number, precision int) number
Аргументы:
num
— число для округления.precision
— точность округления, количество цифр после запятой. Максимальное значение – 14.Результат: Округленное число.
Пример использования:
$a = math.round(3.14159265358979323846264338327950288419716, 17) // $a равно 3.1415926535898
$a = math.round(3.14159265358979323846264338327950288419716, 2) // $a равно 3.14
$a = math.round(3.14159265358979323846264338327950288419716, 0) // $a равно 3
math.rand
Генерирует псевдослучайное число в заданном диапазоне.
Сигнатура: math.rand(min int, max int) int
Аргументы:
min
— минимальное значение.max
— максимальное значение.Результат: Случайное число в диапазоне.
Пример использования:
$r = math.rand(-10, 10)
math.eq
и math.neq
Описание: определяет то, что число a равно b с заданной точностью.
Сигнатура: math.eq(a float, b float, epsilon float = 1e-12) bool
Аргументы:
a
- первое число для сравнения.b
- второе число для сравнения.epsilon
- точность сравнения.Пример использования:
$equals = math.eq(0.1000000000001, 0.10000000000009) // $equals равно true
$equals = math.eq(0.1000000000001, 0.10000000000009, 1e-15) // $equals равно false
$equals = math.eq(100000000000.0001, 100000000000.00009) // $equals равно true
$equals = math.eq(100000000000.0001, 100000000000.00009, 1e-20) // $equals равно false
Описание: math.neq
проверяет, не равны ли числа с заданной точностью.
Сигнатура: math.neq(a float, b float, epsilon float = 1e-12) bool
Аргументы:
a
- первое число для сравнения.b
- второе число для сравнения.epsilon
- точность сравнения.Пример использования:
$equals = math.neq(0.1000000000001, 0.10000000000009) // $equals равно false
$equals = math.neq(0.1000000000001, 0.10000000000009, 1e-15) // $equals равно true
$equals = math.neq(100000000000.0001, 100000000000.00009) // $equals равно false
$equals = math.neq(100000000000.0001, 100000000000.00009, 1e-20) // $equals равно true