Математические функции — это инструменты для выполнения различных арифметических и числовых операций. Они поддерживают высокую точность вычислений и включают как базовые операции, так и более специализированные. Рассмотрим их подробнее.
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