Para permitir las operaciones matemáticas, PHP tiene operadores matemáticos (aritméticos) y una serie de funciones matemáticas. En este capítulo, se explican las siguientes funciones matemáticas con ejemplos.

Función PHP abs()

La función abs() es una función incorporada en el iterpreter de PHP. Esta función acepta cualquier número como argumento y devuelve un valor positivo, sin tener en cuenta su signo. El valor absoluto de cualquier número es siempre positivo.

abs(mixed $num)

La función abs() de PHP devuelve el valor absoluto de num. Si el tipo de datos de num es float, su tipo de valor devuelto también será float. Para el parámetro entero, el tipo de valor devuelto es integer.

Ejemplo

Echa un vistazo al siguiente ejemplo:

<?php
   $num=-9.99;
   echo "negative float number: " . $num . "\n";
   echo "absolute value : " . abs($num) . "\n"; 

   $num=25.55;
   echo "positive float number: " . $num . "\n";
   echo "absolute value : " . abs($num). "\n";

   $num=-45;
   echo "negative integer number: " . $num . "\n";
   echo "absolute value : " . abs($num) . "\n"; 

   $num=25;
   echo "positive integer number: " . $num . "\n";
   echo "absolute value : " . abs($num);
?>

Producirá el siguiente resultado:

negative float number: -9.99
absolute value : 9.99
positive float number: 25.55
absolute value : 25.55
negative integer number: -45
absolute value : 45
positive integer number: 25
absolute value : 25

Función PHP ceil()

La función ceil() es una función incorporada en el iterpreter de PHP. Esta función acepta cualquier número flotante como argumento y lo redondea al siguiente entero más alto. Esta función siempre devuelve un número float ya que el rango de float es mayor que el de integer.

ceil(float$num):float

La función ceil() de PHP devuelve el valor entero más pequeño que sea mayor o igual que el parámetro dado.

Ejemplo 1

El siguiente código redondea 5,78 a su siguiente entero más alto, que es 6

<?php
   $arg=5.78; 
   $val=ceil($arg);
   echo "ceil(" . $arg .  ") = " . $val;
?>

Producirá el siguiente resultado:

ceil(5.78) = 6

Ejemplo 2

En el ejemplo siguiente se muestra cómo se puede encontrar el siguiente entero más alto de 15,05.

<?php
   $arg=15.05; 
   $val=ceil($arg);
   echo "ceil(" . $arg .  ") = " . $val;
?>

Producirá el siguiente resultado:

ceil(15.05) = 16

Ejemplo 3

Para el número negativo, se redondea hacia 0.

<?php
   $arg=-3.95; 
   $val=ceil($arg);
   echo "ceil(" . $arg .  ") = " . $val;
?>

Producirá el siguiente resultado:

ceil(-3.95) = -3

Función PHP exp()

La función exp() calcula el exponente de e que es el número de Euler. PHP tiene una constante predefinida M_E que representa el número de Euler y es igual a 2,7182818284590452354. Por lo tanto, exp(x) devuelve 2.7182818284590452354x

Esta función siempre devuelve un float.

exp(float$arg):float

La función exp() de PHP devuelve el número de Euler e elevado a un argumento dado. Tenga en cuenta que e es la base del algoritmo natural. La función exp() es la inversa del logaritmo natural.

Ejemplo 1

Una de las constantes predefinidas en PHP es M_LN2 que significa loge2 y es igual a 0.69314718055994530942. Por lo tanto, el exp() de este valor devolverá 2.

<?php
   echo "exp(" . M_LN2 . ") = " . exp(M_LN2);
?>

Producirá el siguiente resultado:

exp(0.69314718055995) = 2

Ejemplo 2

M_LN10 es otra constante predefinida que representa loge10. Este programa calcula exp(M_LN10) y devuelve 10.

<?php
   echo "exp(" . M_LN10 . ") = " . exp(M_LN10);
?>

Producirá el siguiente resultado:

exp(2.302585092994) = 10

Función PHP floor()

La función floor() es otra función incorporada en el intérprete de PHP. Esta función acepta cualquier número flotante como argumento y lo redondea al siguiente entero más bajo. Esta función siempre devuelve un número float ya que el rango de float es mayor que el de integer.

floor(float$num):float

La función floor() de PHP devuelve el entero más grande menor o igual que el parámetro dado.

Ejemplo 1

En el ejemplo siguiente se muestra cómo redondear 15,05 a su siguiente entero más alto, que es 15

<?php
   $arg=15.05; 
   $val=floor($arg);
   echo "floor(" . $arg .  ") = " . $val;
?>

Producirá el siguiente resultado:

floor(15.05) = 15

Ejemplo 2

En el ejemplo siguiente se muestra cómo encontrar el siguiente entero más bajo de 5,78.

<?php
   $arg=5.78; 
   $val=floor($arg);
   echo "floor(" . $arg .  ") = " . $val;
?>

Producirá el siguiente resultado:

floor(5.78) = 5

Ejemplo 3

Los números negativos se redondean a 0.

<?php
   $arg=-3.95; 
   $val=floor($arg);
   echo "floor(" . $arg .  ") = " . $val;
?>

Producirá el siguiente resultado:

floor(-3.95) = -4

Función PHP intdiv()

La función intdiv() devuelve el cociente entero de dos parámetros enteros. Si x/y da como resultado «i» como división y «r» como residuo, entonces −

x = y*i+r

En este caso, intdiv(x,y) devuelve «i»

intdiv(int$x,int$y):int

El parámetro «x» forma la parte numeradora de la expresión de división, mientras que el parámetro «y» forma la parte del denominador de la expresión de división.

La función intdiv() de PHP devuelve el cociente entero de la división de «x» por «y». El valor devuelto es positivo si ambos parámetros son positivos o ambos son negativos.

Ejemplo 1

El siguiente ejemplo muestra que si el numerador es menor que el denominador, la función intdiv() devuelve 0.

<?php
   $x=10;
   $y=3; 
   $r=intdiv($x, $y);
   echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
   $r=intdiv($y, $x);
   echo "intdiv(" . $y . "," . $x . ") = " . $r;
?>

Producirá el siguiente resultado:

intdiv(10,3) = 3
intdiv(3,10) = 0

Ejemplo 2

En el siguiente ejemplo, la función intdiv() devuelve un entero negativo porque el numerador o el denominador son negativos.

<?php
   $x=10;
   $y=3; 
   $r=intdiv($x, $y);
   echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";

   $x=10;
   $y=-3; 
   $r=intdiv($x, $y);
   echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";

   $x=-10;
   $y=3; 
   $r=intdiv($x, $y);
   echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";

   $x=-10;
   $y=-3; 
   $r=intdiv($x, $y);
   echo "intdiv(" . $x . "," . $y . ") = " . $r ;
?>

Producirá el siguiente resultado:

intdiv(10,3) = 3
intdiv(10,-3) = -3
intdiv(-10,3) = -3
intdiv(-10,-3) = 3

Ejemplo 3

El denominador es 0 en el ejemplo siguiente. Da como resultado la excepción DivisionByZeroError.

<?php
   $x=10;
   $y=0; 
   $r=intdiv($x, $y);
   echo "intdiv(" . $x . "," . $y . ") = " . $r . "\n";
?>

Producirá el siguiente resultado:

PHP Fatal error:  Uncaught DivisionByZeroError: Division by zero

Ejemplo 4

Se ignoran las partes fraccionarias de ambos parámetros. La función intdiv() de PHP se aplica solo a las partes enteras.

<?php
   $x=2.90;
   $y=1.90; 
   $r=intdiv($x, $y);
   echo "intdiv(" . $x . "," . $y . ") = " . $r . "";
?>

Producirá el siguiente resultado:

intdiv(2.9,1.9) = 2

Función PHP log10()

La función log10 () calcula el logaritmo en base 10 de un número. El logaritmo de base 10 también se denomina algoritmo común o estándar. La función log10(x) calcula log10x. Se relaciona con el algoritmo natural mediante la siguiente ecuación:

log10x=logex/loge10 ; So that
log10100=loge100/loge10 =2

En PHP, log10 está representado por la función log10()

log10(float$arg):float

La función log10() de PHP devuelve el logaritmo en base 10 de arg.

Ejemplo 1

El código siguiente calcula el logaritmo en base 10 de 100

<?php
   $arg=100;
   echo "log10(" . $arg. ")=" . log10($arg) . "";
?>

Producirá el siguiente resultado:

log10(100)=2

Ejemplo 2

El siguiente código calcula el logaritmo en base 10 del número M_E de Euler. El resultado es igual a una constante predefinida M_LOG10E

<?php
   $arg=M_E;
   echo "log10(" . $arg. ")=" . log10($arg) . "\n";
   echo "predefined constant M_LOG10E=" . M_LOG10E;
?>

Producirá el siguiente resultado:

log10(2.718281828459)=0.43429448190325
predefined constant M_LOG10E=0.43429448190325

Ejemplo 3

En el código siguiente se calcula log100 y se devuelve -∞.

<?php
   $arg=0;
   echo "log10(" . $arg. ")=" . log10($arg) . "";
?>

Producirá el siguiente resultado:

log10(0)=-INF

Ejemplo 4

De manera similar, sqrt(-1) da como resultado NAN. Por lo tanto, su log10() también devuelve NAN.

<?php
   $arg=sqrt(-1);
   echo "log10(" . $arg. ")=" . log10($arg) . "";
?>

Producirá el siguiente resultado:

log10(NAN)=NAN

Función PHP max()

La función max () devuelve el elemento más alto de una matriz, o el más alto entre dos o más parámetros separados por comas.

max(array$values):mixed

O

max(mixed$value1[,mixed $...]):mixed
  • Si solo se da un parámetro, debe ser una matriz de valores que pueden ser del mismo tipo o de tipos diferentes.
  • Si se dan dos o más parámetros, deben ser valores comparables del mismo tipo o de tipos diferentes.

La función PHP max() devuelve el valor más alto del parámetro de matriz o secuencia de valores. Se aplican operadores de comparación estándar. Si varios valores de diferentes tipos se evalúan como iguales (por ejemplo, 0 y ‘PHP’), se devolverá el primer parámetro de la función.

Ejemplo 1

El código siguiente devuelve el valor más alto de una matriz numérica.

<?php
   $arg=array(23, 5.55, 142, 56, 99);
   echo "array=";
   foreach ($arg as $i) echo $i . ",";
   echo "\n"; 
   echo "max = " . max($arg);
?>

Producirá el siguiente resultado:

array=23,5.55,142,56,99,
max = 142

Ejemplo 2

El siguiente código devuelve max() de una matriz de cadenas.

<?php
   $arg=array("Java", "Angular", "PHP", "C", "Kotlin");
   echo "array=";
   foreach ($arg as $i) echo $i . ",";
   echo "\n"; 
   echo "max = " . max($arg);
?>

Producirá el siguiente resultado:

array=Java,Angular,PHP,C,Kotlin,
max = PHP

Ejemplo 3

En el siguiente ejemplo, se proporciona una serie de valores de cadena a la función max(). Veamos cómo se comporta:

<?php
   $val1="Java";
   $val2="Angular";
   $val3="PHP";
   $val4="C";
   $val5="Kotlin";
   echo "values=" . $val1 . "," . $val2 . "," . $val3 . "," . 	$val4 . "," . $val5 . "\n";
   echo "max = " . max($val1, $val2, $val3,$val4,$val5);
?>

Producirá el siguiente resultado:

values=Java,Angular,PHP,C,Kotlin
max = PHP

Ejemplo 4

En este ejemplo, la matriz dada es una colección de tipos de datos mixtos.

<?php
   $arg=array(23, "Java", 142, 1e2, 99);
   echo "array=";
   foreach ($arg as $i) echo $i . ",";
   echo "\n"; 
   echo "max = " . max($arg);
?>

Producirá el siguiente resultado:

array=23,Java,142,100,99,
max = 142

Función PHP min()

La función min () devuelve el elemento más bajo de una matriz, o el más bajo entre dos o más parámetros separados por comas.

min(array$values):mixed

O

min(mixed$value1[,mixed $...]):mixed
  • Si solo se da un parámetro, debe ser una matriz de valores que pueden ser del mismo tipo o de tipos diferentes
  • Si se dan dos o más parámetros, deben ser valores comparables del mismo tipo o de tipos diferentes

La función min() de PHP devuelve el valor más bajo del parámetro de matriz o secuencia de valores. Se aplican operadores de comparación estándar. Si varios valores de diferentes tipos se evalúan como iguales (por ejemplo, 0 y ‘PHP’), se devolverá el primer parámetro de la función

Ejemplo 1

El código siguiente devuelve el valor más pequeño de la matriz numérica.

<?php
   $arg=array(23, 5.55, 142, 56, 99);
   echo "array=";
   foreach ($arg as $i) echo $i . ",";
   echo "\n"; 
   echo "min = " . min($arg);
?>

Producirá el siguiente resultado:

array=23,5.55,142,56,99,
min = 5.55

Ejemplo 2

El siguiente código devuelve min() de una matriz de cadenas.

<?php
   $arg=array("Java", "Angular", "PHP", "C", "Kotlin");
   echo "array=";
   foreach ($arg as $i) echo $i . ",";
   echo "\n"; 
   echo "min = " . min($arg);
?>

Producirá el siguiente resultado:

array=Java,Angular,PHP,C,Kotlin,
min = Angular

Ejemplo 3

En este ejemplo, se proporciona una serie de valores de cadena a la función min().

<?php
   $val1="Java";
   $val2="Angular";
   $val3="PHP";
   $val4="C";
   $val5="Kotlin";
   echo "values=" . $val1 . "," . $val2 . "," . $val3 . "," . 	$val4 . "," . $val5 . "\n";
   echo "min = " . min($val1, $val2, $val3,$val4,$val5);
?>

Producirá el siguiente resultado:

values=Java,Angular,PHP,C,Kotlin
min = Angular

Ejemplo 4

En este ejemplo, la matriz dada es una colección de tipos de datos mixtos.

<?php
   $arg=array(23, "Java", 142, 1e2, 99);
   echo "array=";
   foreach ($arg as $i) echo $i . ",";
   echo "\n"; 
   echo "min = " . min($arg);
?>

Producirá el siguiente resultado:

array=23,Java,142,100,99,
min = 23

Función PHP pow()

La función pow () se utiliza para calcular la potencia de un número determinado. Devuelve el cálculo xy, también denominado x elevado a y. PHP también proporciona «**» como operador de exponenciación.

Por lo tanto, pow(x,y) devuelve xy, que es lo mismo que x**y.

pow(number$base,number$exp):number

El primer parámetro es la base que se va a elevar. El segundo parámetro es la potencia a la que se debe elevar la base.

La función pow() de PHP devuelve la base elevada a la potencia de exp. Si ambos argumentos son enteros no negativos, el resultado se devuelve como entero, de lo contrario, se devuelve como flotante.

Ejemplo 1

En el siguiente ejemplo se calcula 102 usando la función pow():

<?php
   echo "pow(10,2) = " . pow(10,2);
   echo " using ** operator " . 10**2;
?>

Producirá el siguiente resultado:

pow(10,2) = 100 using ** operator 100

Ejemplo 2

Cualquier número elevado a 0 da como resultado 1. Esto se verifica en el siguiente ejemplo:

<?php
   $x=10;
   $y=0;
   echo "pow(" . $x, "," . $y . ")=". pow($x,$y);
?>

Producirá el siguiente resultado:

pow(10,0)=1

Ejemplo 3

El siguiente ejemplo muestra cómo se puede calcular la raíz cuadrada de 100 usando la función pow():

<?php
   $x=100;
   $y=0.5;
   echo "pow(" . $x, "," . $y . ")=". pow($x,$y) . "\n";
   echo "using sqrt() function : ". sqrt(100);
?>

Producirá el siguiente resultado:

pow(100,0.5)=10
using sqrt() function : 10

Ejemplo 4

Este ejemplo muestra cómo se puede utilizar la función pow() para calcular el área de un círculo.

<?php
   $radius=5;
   echo "radius = " . $radius . " area = " . M_PI*pow(5,2);
?>

Producirá el siguiente resultado:

radius = 5 area = 78.539816339745

Función round() de PHP

La función round() resulta útil para redondear cualquier número de coma flotante hasta un nivel de precisión deseado. El parámetro de precisión positiva hace que el número se redondee después del separador decimal; mientras que con precisión negativa, el redondeo se produce antes del punto decimal. La precisión es «0» de forma predeterminada.

Por ejemplo, round(10.6) devuelve 11, round(10.2) devuelve 10. La función siempre devuelve un número de coma flotante.

Esta función también tiene otro parámetro opcional llamado mode que toma una de las constantes redefinidas que se describen más adelante.

round(float $value, int$precision, int$mode):float

Parámetros

  • Valor: un número flotante que se va a redondear.
  • Precisión: número de dígitos decimales a los que se va a redondear. El valor predeterminado es 0. La precisión positiva redondea un número dado después del punto decimal. La precisión negativa redondea el número dado antes del punto decimal.
  • Modo: una de las siguientes constantes predefinidas.
Sr.NoConstante y descripción
1PHP_ROUND_HALF_UP Redondea el número desde 0 cuando está a mitad de camino. Por lo tanto, 1,5 se convierte en 2 y -1,5 en -2
2PHP_ROUND_HALF_DOWN Redondea el número hacia 0 cuando está a mitad de camino. Por lo tanto, 1,5 se convierte en 1 y -1,5 en -1
3PHP_ROUND_HALF_EVEN Redondea el número al valor par más cercano
4PHP_ROUND_HALF_ODD Redondea el número al valor impar más cercano

La función round() de PHP devuelve un número flotante que redondea el valor a una precisión deseada.

Ejemplo 1

El siguiente código redondea el número dado a valores de precisión positivos:

<?php
   $arg=1234.567;
   echo "round(" . $arg . ") = " . round($arg) . "\n";
   echo "round(" . $arg . ",1) = " . round($arg,1) . "\n";
   echo "round(" . $arg . ",2) = " . round($arg,2) . "";
?>

Producirá el siguiente resultado:

round(1234.567) = 1235
round(1234.567,1) = 1234.6
round(1234.567,2) = 1234.57

Ejemplo 2

El siguiente código redondea el número a valores de precisión negativos:

<?php
   $arg=1234.567;
   echo "round(" . $arg . ") = " . round($arg) . "\n";
   echo "round(" . $arg . ",-1) = " . round($arg,-1) . "\n";
   echo "round(" . $arg . ",-2) = " . round($arg,-2) . "";
?>

Producirá el siguiente resultado:

round(1234.567) = 1235
round(1234.567,-1) = 1230
round(1234.567,-2) = 1200

Ejemplo 3

El siguiente código utiliza constantes de modo ARRIBA y ABAJO para redondear:

<?php
   echo "round(3.45,HALF_UP) = " . round(3.45,0, PHP_ROUND_HALF_UP) . "\n";
   echo "round(3.75 HALF_UP) = " . round(3.75, 1, PHP_ROUND_HALF_DOWN) . "";
?>

Producirá el siguiente resultado:

round(3.45,HALF_UP) = 3
round(3.75 HALF_UP) = 3.7

Ejemplo 4

El siguiente código usa los modos ODD e EVEN para redondear:

<?php
   echo "round( 3.45,HALF_ODD) = " . round(3.45,0, PHP_ROUND_HALF_ODD) . "\n";
   echo "round(3.78 HALF_EVEN) = " . round(3.78, 0, PHP_ROUND_HALF_EVEN) . "";
?>

Producirá el siguiente resultado:

round(3.45,HALF_ODD) = 3
round(3.78, HALF_EVEN) = 4

Función sqrt() de PHP

La función sqrt() devuelve la raíz cuadrada de un número flotante positivo. Dado que la raíz cuadrada de un número negativo no está definida, devuelve NAN. Esta es una de las funciones más utilizadas. Esta función siempre devuelve un número de coma flotante.

sqrt(float$arg):float

La función sqrt() de PHP devuelve la raíz cuadrada del número de argumento dado. Para números negativos, la función devuelve NAN.

Ejemplo 1

El siguiente código calcula la raíz cuadrada de 100 −

<?php
   $arg = 100;
   echo "Square root of " . $arg . "=" . sqrt($arg) . "";
?>

Producirá el siguiente resultado:

Square root of 100=10

Ejemplo 2

Para sqrt(2), 1/sqrt(2) y sqrt(3), PHP tiene constantes especiales predefinidas M_SQRT2, M_SQRT1_2 y M_SQRT3, respectivamente.

<?php
   echo "sqrt(2) = " . sqrt(2) . "\n";
   echo "M_SQRT2 = " . M_SQRT2. "\n";
   echo "sqrt(3) = " . sqrt(3) . "\n";
   echo "M_SQRT3 = " . M_SQRT3 . "\n";
   echo "1/sqrt(2)) = " . 1/sqrt(2) . "\n";
   echo "M_SQRT1_2 = " . M_SQRT1_2 . "";
?>

Producirá el siguiente resultado:

sqrt(2) = 1.4142135623731
M_SQRT2 = 1.4142135623731
sqrt(3) = 1.7320508075689
M_SQRT3 = 1.7320508075689
1/sqrt(2)) = 0.70710678118655
M_SQRT1_2 = 0.70710678118655

Ejemplo 3

Las constantes matemáticas M_SQRTPI y M_2_SQRTPI representan valores de sqrt(Π) y 2/sqrt(Π).

<?php
   echo "sqrt(pi) = " . sqrt(M_PI) . "\n";
   echo "M_SQRTPI = " . M_SQRTPI. "\n";
   echo "2/sqrt(pi) = " . 2/sqrt(M_PI) . "\n";
   echo "M_2_SQRTPI = " . M_2_SQRTPI . "";
?>

Producirá el siguiente resultado:

sqrt(pi) = 1.7724538509055
M_SQRTPI = 1.7724538509055
2/sqrt(pi) = 1.1283791670955
M_2_SQRTPI = 1.1283791670955

Ejemplo 4

sqrt(-1) no está definido, por lo que devuelve NAN.

<?php
   echo "sqrt(-1) = " . sqrt(-1) . "";
?>

Producirá el siguiente resultado:

sqrt(-1) = NAN

Constantes matemáticas predefinidas

Además de las funciones matemáticas anteriores, PHP también tiene la siguiente lista de constantes matemáticas predefinidas:

ConstanteValorDescripción
M_PI3.14159265358979323846Pi
M_E2.7182818284590452354Número de Euler e
M_LOG2E1.4426950408889634074log2 e
M_LOG10E0.43429448190325182765log10 e
M_LN20.69314718055994530942Logia 2
M_LN10M_LN10 2.30258509299404568402 loge 10Logia 10
M_PI_21.57079632679489661923PI/2
M_PI_40.78539816339744830962PI/4
M_1_PI0.318309886183790671541/pi
M_2_PI0.636619772367581343082/pi
M_SQRTPI1.77245385090551602729sqrt(pi)
M_2_SQRTPI1.128379167095512573902/sqrt(pi)
M_SQRT21.41421356237309504880sqrt(2)
M_SQRT31.73205080756887729352sqrt(3)
M_SQRT1_20.707106781186547524401/sqrt(2)
M_LNPI1.14472988584940017414loge(pi)
M_EULER0.57721566490153286061Constante de Euler
PHP_ROUND_HALF_UP1Redondea las mitades hacia arriba
PHP_ROUND_HALF_DOWN2Redondea las mitades hacia abajo
PHP_ROUND_HALF_EVEN3Redondear mitades a números pares
PHP_ROUND_HALF_ODD4Redondear mitades a números impares
NANNANNo es un número
INFINFInfinidad