Cuando necesitemoscomprobar si un determinado valor es numérico usaremos las funciones de PHP is_int(), is_float() e is_numeric().
Consulta el enlace sobre información sobre tipos de datos facilitado a continuación.

Vea también: [ Información sobre tipos de datos ]

Para comprobar si un valor recibido de un formulario es numérico utilizaremos is_numeric(), ya que los datos del mismo llegan a PHP como cadena de texto, y dicha función sí lo reconocería como tal.
Para convertir a tipo numérico disponemos de las funciones de PHP settype() e intval(). Para más información consulta el enlace Convertir tipos de datos facilitado a continuación.

Vea también: [ Convertir tipos de datos ]

Es recomendable usar la intval() en lugar de settype() para convertir a entero, ya que esta última puede devolver valores no esperados.
Utilizaremos las siguientes funciones para redondear números en PHP.
round(): redondea un número decimal hacia arriba, indicando como segundo parámetro la precisión del número obtenido (si no indicamos nada quedará sin decimales).
Si se especifica la precisión numérica y el último dígito es cero se eliminará, devolviéndose un dígito menos de lo especificado en el segundo parámetro.
Como tercer parámetro podemos especificar cómo deberá realizarse el redondeo (a partir de la versión de PHP 5.3.0) indicando una de las siguientes constantes:
- PHP_ROUND_HALF_UP: redondea hacia arriba.
- PHP_ROUND_HALF_DOWN: redondea hacia abajo.
- ceil(): redondea un número decimal hacia arriba, devolviendo sólo la parte entera.
- floor(): redondea un número decimal hacia abajo, devolviendo sólo la parte entera.
<?php
echo "round('55.5701', 3) -> ".round("55.5701", 3)."<br />";
echo "round('55.5705', 3) -> ".round("55.5705", 3)."<br />";
echo "round('55.481', 1) -> ".round("55.481", 1)."<br />";
echo "round('55.537', 2) -> ".round("55.537", 2)."<br />";
echo "round('55.4') -> ".round("55.4")."<br />";
echo "round('55.5') -> ".round("55.5")."<p />";
/* A partir de PHP 5.3.0 */
echo "round(8.34, 1, PHP_ROUND_HALF_UP) -> ".round(8.34, 1, PHP_ROUND_HALF_UP)."<br />";
echo "round(8.35, 1, PHP_ROUND_HALF_UP) -> ".round(8.35, 1, PHP_ROUND_HALF_UP)."<br />";
echo "round(8.36, 1, PHP_ROUND_HALF_UP) -> ".round(8.36, 1, PHP_ROUND_HALF_UP)."<p />";
/* A partir de PHP 5.3.0 */
echo "round(8.34, 1, PHP_ROUND_HALF_DOWN) -> ".round(8.34, 1, PHP_ROUND_HALF_DOWN)."<br />";
echo "round(8.35, 1, PHP_ROUND_HALF_DOWN) -> ".round(8.35, 1, PHP_ROUND_HALF_DOWN)."<br />";
echo "round(8.36, 1, PHP_ROUND_HALF_DOWN) -> ".round(8.36, 1, PHP_ROUND_HALF_DOWN)."<p />";
echo "ceil('55.4') -> ".ceil("55.4")."<br />";
echo "ceil('55.5') -> ".ceil("55.5")."<br />";
echo "ceil('55.50') -> ".ceil("55.50")."<br />";
echo "ceil('55.6') -> ".ceil("55.6")."<p />";
echo "floor('55.4') -> ".floor("55.4")."<br />";
echo "floor('55.5') -> ".floor("55.5")."<br />";
echo "floor('55.50') -> ".floor("55.50")."<br />";
echo "floor('55.6') -> ".floor("55.6");
?>
Observa que en el primer caso usando round() se elimina el cero al final, devolviéndose sólo dos posiciones decimales en lugar de las tres indicadas en el segundo parámetro.
También podemos usar la función number_format() para redondear números, así como para mostrarlos según el formato especificado:
<?php
echo number_format(153.751)."<br />"; // Devuelve: 154
echo number_format(153.751, 1)."<br />"; // Devuelve: 153.8
echo number_format(153.751, 2); // Devuelve: 153.75
?>

Vea también: [ Conversión de cadenas a números ] - [ round() ] - [ ceil() ] - [ floor() ] - [ number_format() ]

PHP no maneja por defecto de forma correcta cadenas de texto tales como "12,300.2", consulta el enlace anterior sobre conversión de cadenas a números.
Usaremos la función number_format() para dar formato a un número.
NOTA: tal y como se indica en la documentación oficial de PHP, la función number_format() admite uno, dos, o cuatro parámetros (no funciona con tres). Para más información consulta el enlace sobre dicha función al final de este apartado.
<?php
$numero1 = 5789.445;
$numero2 = 1355789.58;
echo number_format($numero1, 2, ',', '.')."<br />"; // Devuelve: 5.789,45
echo number_format($numero2, 1, ',', '.')."<p />"; // Devuelve: 1.355.789,6
?>

Vea también: [ number_format() ]
Aparte de otras funciones ya vistas anteriormente, PHP dispone de otras muchas funciones matemáticas. A continuación describiremos algunas ellas:
- abs(): devuelve el valor absoluto de un número.
- pow(): devuelve el valor de número elevado a un determinado expontente.
- max(): retorna el valor más alto.
- min(): retorna el valor más bajo.
- rand(): devuelve un número entero aleatorio.
- sqrt(): devuelve la raíz cuadrada.
- decbin(): convierte de decimal a binario.
- bindec(): convierte de binario a decimal.
- dechex(): convierte de decimal a hexadecimal.
- hexdec(): convierte de hexadecimal a decimal
<?php
echo "abs(33) = ".abs(33)."<br />"; // Devuelve: 33
echo "abs(-5) = ".abs(-5)."<p />"; // Devuelve: 5
echo "pow(2,3) = ".pow(2,3)."<p />"; // Devuelve: 8
$aNumeros = array(2, 45, 23, 1, 230, 15);
echo "min(\$aNumeros) = ".min($aNumeros)."<br />"; // Devuelve: 1
echo "max(\$aNumeros) = ".max($aNumeros)."<p />"; // Devuelve: 230
echo "rand() = ".rand()."<br />"; // Devuelve un número aleatorio
echo "rand(1, 100) = ".rand(1, 100)."<br />"; // Devuelve un número aleatorio entre 1 y 100
echo "sqrt(9) = ".sqrt(9)."<p />";
echo "decbin(1000) = ".decbin(1000)."<br />"; // Devuelve: "1111101000"
echo "bindec('1111101000') = ".bindec("1111101000")."<p />"; // Devuelve: 1000
echo "dechex(1000) = ".dechex(1000)."<br />"; // Devuelve: "3e8"
echo "hexdec('3e8') = ".hexdec("3e8"); // Devuelve: 1000
?>