Lecciones de PHP - Lección 4 - Variables numéricas en PHP
En la lección anterior estudiamos las variables de tipo cadena, y ahora vamos a ver las variables numéricas. El tipo más simple de número es el número entero.
Números enteros en PHP
Los números enteros son todos los valores del rango [-2 147 483 648,...,-4,-3,-2,-1,0,1,2,3,4,...,2 147 483 647], es decir, de -2147483648 a 2147483647. Esta es la limitación debida al uso de 32 bits para representar un entero.
Como todas las demás variables en PHP, los enteros se definen mediante una asignación simple.
<?php $x = 5; $y = -8; ?>
Además de los números decimales que usamos habitualmente, también se pueden usar otros sistemas de numeración (octal, hexadecimal, etc.):
<?php $i = 456; // número decimal $i = -895; // número negativo $i = 0121; // número octal (equivale a 81 en decimal) $i = 0x1B; // número hexadecimal (equivale a 27 en decimal) ?>
Además de los números enteros, PHP también admite números flotantes.
Números flotantes (float) en PHP
Los números con decimales en PHP se escriben como decimales, usando punto como separador:
$pi = 3.14;
La parte decimal se separa con punto, pero no debe confundirse con el operador de concatenación de cadenas. También se pueden escribir en notación científica:
$b = 3.2e5; $c = 9E-11;
Los números flotantes, también llamados números de coma flotante (floating point), ocupan 64 bits de memoria (el doble que los enteros).
Normalmente, los números flotantes resultan de divisiones:
$a = 1/3; print $a;
El resultado será:
0.333333333333
También es importante tener en cuenta que el resultado puede no ser tan obvio:
$a = 1/3; $a = $a*3; print $a;
El resultado no será 0.999999999 sino exactamente 1.
Si hicieras lo mismo en una calculadora (dividir 1 entre 3 y luego multiplicar por 3), perderías una millonésima o una milmillonésima dependiendo de la precisión del dispositivo. PHP, en cambio, "recuerda" la operación sobre la variable y no pierde precisión en el resultado.