Книга: Учебник php
bcmul
Операция умножения для двух чисел произвольной точности.
Синтаксис :
string bcmul(string left_operand, string right_operand [, int scale]);
Производит умножение left_operand на right_operand, и выдает результат в виде строки с точностью, заданной в переменной scale.
bcpow
Возведение одного числа произвольной точности в степень другого.
Синтаксис :
string bcpow(string x, string y, [int scale]);
Возведение x в степень y. Параметр scale может использоваться для установки количества цифр после точки.
bcscale
Устанавливает точность вычислений.
Синтаксис :
string bcscale(int scale);
Эта функция устанавливает заданную по умолчанию точность вычислений для всех математических функций BCMath, которые явно не определяют точность.
bcsqrt
Получение квадратного корня числа произвольной точности.
Синтаксис :
string bcsqrt(string operand [,int scale]);
Возвращает кваддратный корень аргумента operand. Параметр scale устанавливает количество цифр после десятичной отметки в результате.
bcsub
Вычитает одно число произвольной точности из другого.
Синтаксис :
string bcsub(string left_operand, right_operand [, int scale]);
Возвращает разность двух переменных, указанных в параметрах функции (left_operand - right_operand) с точностью, указанной в необязательном параметре scale.
Функции GMP
Функции этого вида позволяют работать с целыми числами повышенной точности определенного формата используя библиотеку GNU MP.
Эта библиотека не входит в стандартный пакет PHP. Загрузить коды библиотеки и документацию по ней можно на сайте http://www.swox.com/gmp/.
Функции, приведенные в этой библиотеке, могут также работать с обычными целочисленными аргументами. В этом случае они будут автоматически преобразовываться в формат GMP. Но для увеличения производительности рекомендуется все же использовать числа формата GMP.
Функции GMP. Значения функции GMP
gmp_init
Создает число GMP.
Синтаксис :
resource gmp_init(mixed number)
Число GMP создается из целочисленного или строкового аргумента.
В строке может быть указано число десятеричного или шестнадцатеричного формата. Если это шестнадцатеричный формат, то перед числом должен стоять префикс 0x.
Данная функция не обязательна (аргументы автоматически конвертируются в формат GMP), но желательна (при использовании функции gmp_init() повышается быстродействие).
gmp_intval
Преобразование GMP-числа в целое.
Синтаксис :
int gmp_intval(resource gmpnumber)
Эта функция конвертирует GMP-число в целое в том случае, если получаемое число не превышает своего максимально допустимого размера.
gmp_strval
Преобразование GMP-числа в строку.
Синтаксис :
string gmp_strval(resource gmpnumber [, int base])
Функция возвращает число gmpnumber в строковом формате в системе счисления, заданной в необязательном параметре base. По умолчанию возвращает в десятичной системе счисления).
Параметр base может принимать значения от 2 до 36.
gmp_abs
Вычисляет модуль GMP-числа.
Синтаксис :
resource gmp_abs(resourse x)
Возвращает абсолютное значение числа, заданного в параметре x.
gmp_sign
Возвращает знак числа.
Синтаксис :
int gmp_sign(resource x)
Функция gmp_sign() возвратит 1, если x - положительное число, и 0 - если отрицателоное.
gmp_neg
Возвращает отрицательное значение числа.
Синтаксис :
recource gmp_neg(resource x)
Возвратит -x.
Функции GMP. Арифметика
gmp_add
Сложение двух чисел.
Синтаксис :
recource gmp_add(resource x, recource y)
Функция возвратит GMP-число, равное сумме аргументов x и y.
gmp_sub
Вычитание двух чисел.
Синтаксис :
recource gmp_sub(resource x, recource y)
Функция возвратит GMP-число, равное разности аргументов x и y.
gmp_mul
Умножение двух чисел.
Синтаксис :
recource gmp_mul(resource x, recource y)
Функция возвратит GMP-число, равное произведению аргументов x и y.
gmp_div
Деление двух чисел.
Синтаксис :
recource gmp_div(resource x, recource y [, int round])
Функция возвратит GMP-число, равное делению аргументов x на y. В зависимости от необязательного параметра round, результат деления будет округляться следующим образом:
· GMP_ROUND_ZERO - цифры после точки отбрасываются
· GMP_ROUND_PLUSINF - результат деления округляется в большую сторону
· GMP_ROUND_MINUSINF - результат деления округляется в меньшую сторону
Эта функция - синоним gmp_div_q().
gmp_div_q
Деление двух чисел.
Синтаксис :
recource gmp_div_q(resource x, recource y [, int round])
Функция возвратит GMP-число, равное делению аргументов x на y. В зависимости от необязательного параметра round, результат деления будет округляться следующим образом:
· GMP_ROUND_ZERO - цифры после точки отбрасываются
· GMP_ROUND_PLUSINF - результат деления округляется в большую сторону
· GMP_ROUND_MINUSINF - результат деления округляется в меньшую сторону
У этой функции есть синоним - gmp_div().
gmp_div_r
Возвращате остаток от целочисленного деления.
Синтаксис :
recource gmp_div_r(resource x, recource y [, int round])
Функция возвращает остаток от деления x на y. Знак будет наследован от аргумента x.
gmp_div_qr
Производит деление с остатком.
Синтаксис :
array gmp_div_qr(resource x, recource y [, int round])
Данная функция комбинирует в себе действие двух предыдущих функций gmp_div_q() и gmp_div_r(). Она возвращает массив, состоящий из двух элементов: под индексом [0] - целое частное, под индексом [1] - остаток деления.
gmp_mod
Возвращает модуль остатка деления.
Синтаксис :
resource gmp_mod(resource x, recource y)
Данная функция эквивалентна gmp_div_r(), за исключением того, что она возвращает абсолютное значение.
gmp_divexact
Производит безостаточное деление.
Синтаксис :
resource gmp_divexact(resource x, recource y)
Данная функция использует алгоритм "точного" деления. Результат будет достоверным, только если x будет нацело делим y.
gmp_cmp
Производит сравнение двух чисел.
Синтаксис :
int gmp_cmp(resource x, recource y)
Функция возвратит положительное значение, если x > y; ноль, елси x = y; отрицательное значени, если x < y.