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

Библиотека математических функций 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
    


.