Математические функции
Библиотека математических функций PHP реализует методы для тригонометрических вычислений, числовых преобразований и числовых операций. Тригонометрические функции воспринимают параметры в радианах, но существуют функции преобразования градусов в радианы и наоборот.
- abs( ) – абсолютное значение числа.
echo abs(-0.7); // Выводит 0.7
- acos( ) – арккосинус, выраженный в радианах.
echo acos(-0.7); // Выводит 2.3461938234056
- asin( ) – арксинус, выраженный в радианах.
echo asin(-0.7); // Выводит -0.77539749661075
- atan( ) – арктангенс, выраженный в радианах.
echo atan(-0.7); // Выводит -0.61072596438921
- atan2( ) – арктангенс для координат x и y, выраженный
в радианах. Отличие от выражения atan(y/x) состоит в том, что знаки
обоих параметров используются для определения квадранта результата.
echo atan(-0.7/2); // Выводит -0.33667481938673 echo atan2(2, -0.7); // Выводит 1.9074711461816
- base_convert( ) – переводит число из одной системы счисления в
другую. Аргументы: переводимое число, система счисления, из которой переводят,
система счисления, в которую переводят.
echo base_convert(13, 10, 16); // Выводит d
- bindec( ) – десятичный эквивалент двоичной строки. Наибольшее
конвертируемое число содержит 31 разряд, что соответствует 2147483647.
echo bindec(11101011); // Выводит 235
- ceil( ) – округление числа в большую сторону.
echo ceil(2.35); // Выводит 3
- cos( ) – косинус аргумента, выраженного в радианах.
echo cos(2.35); // Выводит -0.70271307677355
- decbin( ) – двоичный эквивалент десятичного числа. Наибольшее
конвертируемое число составляет 2147483647, или 31 разряд.
echo decbin(235); // Выводит 11101011
- dechex( ) – шестнадцаричный эквивалент десятичного числа. Наибольшее
конвертируемое число составляет 2147483647 или 7fffffff в шестнадцаричном
выражении.
echo dechex(235); // Выводит eb
- decoct( ) – восьмеричный эквивалент десятичного числа. Наибольшее
конвертируемое число составляет 2147483647 или 17777777777 в восьмеричном
выражении.
echo decoct(235); // Выводит 353
- deg2rad( ) – преобразует градусы в радианы.
echo deg2rad(90); // Выводит 1.5707963267949
- exp( ) – экспонента числа.
echo exp(1); // Выводит 2.718281828459
- floor( ) – округление числа в меньшую сторону.
echo floor(2.99); // Выводит 2
- fmod(x,y) – остаток от деления x на y.
echo fmod(4.5,2); // Выводит 0.5
- getrandmax( ) – максимальное число, которое может быть получено в
результате вызова функции rand( ).
echo getrandmax( ); // Выводит 32767
- hexdec( ) – десятичный эквивалент шестнадцаричного числа,
представленного строкой. Наибольшее
конвертируемое число составляет 7fffffff или 2147483647 в десятичном выражении.
echo hexdec('eb'); // Выводит 235 - hypot(x,y) – длина гипотенузы прямоугольного треугольника со сторонами x и y.
echo hypot(4,5); // Выводит 6.4031242374328
- is_finite() – проверяет, является ли число допустимым конечным числом на данной платформе.
echo is_finite(2000); // Выводит 1 echo is_finite(log(0)); // Ничего не выводит
- is_infinite() – проверяет, является ли число бесконечным.
echo is_infinite(2000); // Ничего не выводит echo is_infinite(log(0)); // Выводит 1
- is_nan() – проверяет, является ли значение "не-числом".
echo is_nan(200); // Выводит 1 echo is_nan(acos(1.01)); // Ничего не выводит
- lcg_value( ) – псевдослучайное число в диапазоне от 0 до 1.
- log( ) – натуральный логарифм.
echo log(exp(1)); // Выводит 1 echo log(2.718); // Выводит 0.99989631572895
- log10( ) – десятичный логарифм.
echo log(1000); // Выводит 3
- log1p( ) – log(1+x), рассчитанное таким образом, что результат точен, даже когда значение x близко к нулю. Из-за недостатка точности log() в этом случае может вернуть просто log(1).
- max( ) – наибольшее значение из списка параметров. Возможно
сравнение неограниченного кличества значений. В качестве параметра может быть
задан массив.
echo max(12.23, 42.554, 58.234, 34.31); // Выводит 58.234 $a = array(12.23, 42.554, 58.234, 34.31); echo max($a); // Выводит 58.234
- min( ) – наибольшее значение из списка параметров. Возможно
сравнение неограниченного количества значений. В качестве параметра может быть
задан массив.
echo min(12.23, 42.554, 58.234, 34.31); // Выводит 12.23 $a = array(12.23, 42.554, 58.234, 34.31); echo min($a); // Выводит 12.23
- mt_getrandmax( ) – максимальное число, которое может быть получено в
результате вызова функции mt_rand( ).
echo mt_getrandmax( ); // Выводит 2147483647
- mt_rand( ) – случайное число. Для его получения используется генерация случайных чисел по методу Твистера. Необязательные аргументы указывают диапазон допустимых значений. Перед использованием этой функции необходимо установить начальное число с помощью функции mt_srand( ).
- mt_srand( ) – устанавливает начальное число для генератора случайных
чисел в соответствии с заданным параметром. Это позволяет получать различные
результаты при вызове функции mt_rand( ).
mt_srand(9); for ($i = 1; $i <= 10; $i++) echo mt_rand(1, 9)." "; // Выводит 7 3 8 7 1 4 4 9 3 5
- number_format( ) – форматирует число. Аргументы: форматируемое число,
число знаков после запятой, символ, используемый вместо десятичной точки (необязательно),
символ разграничения тысяч (необязательно).
$a = 3456787 * log(2.718); echo number_format($a, 4, ",", "'"); // Выводит 3'456'428,5856
- octdec( ) – десятичный эквивалент восьмеричного числа,
представленного строкой. Наибольшее конвертируемое число составляет
17777777777 или 2147483647 в десятичном выражении.
echo octdec(353); // Выводит 235
- pi( ) – приближенное значение числа π.
echo pi(); // Выводит 3.1415926535898
- pow( ) – возведение в степень. Аргументы: основание и показатель
степени.
echo pow(2, 3); // Выводит 8
- rad2deg( ) – преобразует радианы в градусы.
echo rad2deg(pi()/4); // Выводит 45
- rand( ) – псевдослучайное число.
Необязательные аргументы указывают диапазон допустимых значений.
Если их не задавать, то число выбирается из диапазона от 0 до RAND_MAX.
Перед использованием этой функции
необходимо установить начальное число с помощью функции srand( ).
- round( ) – округление числа до ближайшего целого.
echo round(6.45656); // Выводит 6
- sin( ) – синус аргумента, выраженного в радианах.
echo sin(pi()/2); // Выводит 1
- sqrt( ) – квадратный корень числа.
echo sqrt(121); // Выводит 11
- srand( ) – устанавливает заданное начальное число для генератора
псевдослучайных чисел. Это позволяет получать различные результаты при вызове
функции rand( ).
srand(9); for ($i = 1; $i <= 10; $i++) echo rand(1, 9)." "; // Выводит 9 1 6 2 3 4 6 3 4 6
- tan( ) – тангенс аргумента, выраженного в радианах.
echo tan(pi()/4); // Выводит 1
В языке PHP существуют также функции математических вычислений произвольной точности. Особенностью этих функций является параметр разрядности. Разрядность – количество знаков после десятичной точки в операндах и результате. По умолчанию принимается 0.
- bcadd( ) – сумма первого и второго аргументов. Третий аргумент -
параметр разрядности.
echo bcadd(4.009, 4.009, 2); // Выводит 8
- bccomp( ) – числовое сравнение. Если первый аргумент больше второго,
то возвращается +1. Если первый аргумент меньше второго, то возвращается -1.
Если аргументы равны, то возвращается 0.
echo bccomp(4.001, 4.009, 2); // Выводит 0 echo bccomp(4.01, 4.09, 2); // Выводит -1 echo bccomp(4.09, 4.01, 2); // Выводит 1
- bcdiv( ) – частное от деления первого аргумента на второй.
echo bcdiv(4.001, 2.009, 2); // Выводит 2 echo bcdiv(2.003, 3.009, 2); // Выводит 0.66 echo bcdiv(4.00, 0.005, 2); // Выводит предупреждение о попытке деления на нуль
- bcmod( ) – остаток от деления первого аргумента на второй.
echo bcmod(1525, 3); // Выводит 1 echo bcmod(1525.999, 3); // Выводит 1 echo bcmod(1525.999, 3.123); // Выводит 1
- bcmul( ) – произведение первого и второго аргументов.
Третий аргумент – параметр разрядности.
echo bcmul(2.008, 4.009, 2); // Выводит 8.00
- bcpow( ) – возведение в степень. Аргументы: основание, показатель
степени, параметр разрядности. Показатель степени не должен содержать знаков
после десятичной точки.
echo bcpow(2.005, 3, 2); // Выводит 8.00 echo bcpow(2.25, 3, 2); // Выводит 11.39
- bcscale( ) – значение параметра разрядности, который будет
использоваться по умолчанию.
echo bcpow(2.25, 3); // Выводит 8 echo bcscale(2); echo bcpow(2.25, 3); // Выводит 11.39
- bcsqrt( ) – квадратный корень числа.
echo bcsqrt(121.00, 2); // Выводит 11.00 echo bcsqrt(121.75, 2); // Выводит 11.03
- bcsub( ) – разность. Из первого аргумента вычитается второй.
echo bcsub(4.001, 2.009, 2); // Выводит 2.00 echo bcsub(2.03, 3.09, 2); // Выводит -1.06
.
Прокомментировать/Отблагодарить