Neste capítulo, examinaremos detalhadamente os números inteiros, flutuantes e strings numéricas.
Uma coisa a notar sobre o PHP é que ele fornece conversão automática de tipo de dados.
Portanto, se você atribuir um valor inteiro a uma variável, o tipo dessa variável será automaticamente um inteiro. Então, se você atribuir uma string à mesma variável, o tipo mudará para uma string.
Essa conversão automática às vezes pode quebrar seu código.
2, 256, -256, 10358, -179567 são todos inteiros.
Um inteiro é um número sem qualquer parte decimal.
Um tipo de dados inteiro é um número não decimal entre -2147483648 e 2147483647 em sistemas de 32 bits e entre -9223372036854775808 e 9223372036854775807 em sistemas de 64 bits. Um valor maior (ou menor) que este, será armazenado como float, pois excede o limite de um inteiro.
Nota: Outra coisa importante a saber é que mesmo que 4 * 2.5 seja 10, o resultado é armazenado como float, pois um dos operandos é um float (2.5).
Aqui estão algumas regras para números inteiros:
O PHP tem as seguintes constantes predefinidas para inteiros:
O PHP possui as seguintes funções para verificar se o tipo de uma variável é inteiro:
Verifique se o tipo de uma variável é inteiro:
<?php
$x = 5985;
var_dump(is_int($x));
$x = 59.85;
var_dump(is_int($x));
?>
Um float é um número com um ponto decimal ou um número na forma exponencial.
2,0, 256,4, 10,358, 7,64E+5, 5,56E-5 são todos floats.
O tipo de dados float geralmente pode armazenar um valor de até 1,7976931348623E+308 (dependente da plataforma) e ter uma precisão máxima de 14 dígitos.
O PHP tem as seguintes constantes predefinidas para floats (do PHP 7.2):O PHP possui as seguintes funções para verificar se o tipo de uma variável é float:
Verifique se o tipo de uma variável é float:
<?php
$x = 10.365;
var_dump(is_float($x));
?>
Um valor numérico maior que PHP_FLOAT_MAX é considerado infinito.
O PHP possui as seguintes funções para verificar se um valor numérico é finito ou infinito:
No entanto, a função PHP var_dump()
retorna o tipo de dados e o valor:
Verifique se um valor numérico é finito ou infinito:
<?php
$x = 1.9e411;
var_dump($x);
?>
NaN significa Not a Number.
NaN é usado para operações matemáticas impossíveis.
O PHP tem as seguintes funções para verificar se um valor não é um número:
No entanto, a função PHP var_dump()
retorna o tipo de dados e o valor:
O cálculo inválido retornará um valor NaN:
<?php
$x = acos(8);
var_dump($x);
?>
A função PHP is_numeric() pode ser usada para descobrir se uma variável é numérica. A função retorna true se a variável for um número ou uma string numérica, caso contrário, false.
O cálculo inválido retornará um valor NaN:
<?php
$x = 5985;
var_dump(is_numeric($x));
$x = "5985";
var_dump(is_numeric($x));
$x = "59.85" + 100;
var_dump(is_numeric($x));
$x = "Hello";
var_dump(is_numeric($x));
?>
Às vezes, você precisa converter um valor numérico em outro tipo de dados.
As funções (int)
, (integer)
ou intval()
são frequentemente usadas para converter um valor em um inteiro.
Converta float e string para inteiro:
<?php
// Cast float to int
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;
echo "<br>";
// Cast string to int
$x = "23465.768";
$int_cast = (int)$x;
echo $int_cast;
?>