GUIA PHP COM MYSQL #6 - TIPO INTEIRO
Postado em: 26 de setembro de 2006 por Eduardo SiqueiraUm número inteiro é qualquer número sem decimais, positivo ou negativo, que pode ser representado na base decimal, hexadecimal ou octal. Para definir um inteiro na base octal o numero deve ser precedido por 0, já pra definir um numero na base hexadecimal ele deve ser precedido por 0x:
<?php
$decimal = 127;
$decimal_negativo = - 256;
$octal = 077;
$hexadecimal = 0xF0A;
?>
O tamanho máximo do tipo inteiro depende da plataforma em que o PHP está sendo executado, mas em geral é algo próximo de dois bilhões, o que equivale a um número de 32 bits (pouco não é). Se você especificar um numero inteiro além dos limites suportados pelo PHP, ele será definido como ponto flutuante (evitando o erro overflow que algumas linguagens exibem quando isso acontece, o Visual Basic é uma delas), da mesma forma o resultado de expressões com inteiros será do tipo ponto flutuante caso os limites do PHP para inteiros seja ultrapassados no resultado:
<?php
$numero = 2147483647;
echo gettype($numero) . "<br>";
$numero2 = $numero * 10 ;
echo gettype($numero2) . "<br>";
$numero3 = 1000;
var_dump($numero * $numero3);
?>
O resultado desse script você confere aqui. Note gettype($numero2) retornou “double” e não Float, o que se deve a razões históricas do PHP. O resultado de operações de divisão será sempre um ponto flutuante. Para obter um inteiro de uma divisão, você precisa explicitar isso ao PHP ou utilizar a função round( ) (apesar de a própria função round( ) retornar um ponto flutuante).
<?php
$n = 125/ 3;
echo "<pre>";
var_dump($n);
var_dump((int)$n);
var_dump(round($n));
echo "</pre>";
?>
O resultado você confere aqui. Nesse post conhecemos o tipo inteiro, bem como seus limites, no próximo veremos sobre os pontos flutuantes (FLOAT). Não deixe de comentar, pois seu feedback é muito importante para continuar-mos com esse guia.









Igor Escobar disse: 26.09.06 ás 09:37
O Binário não inclui nestas representações de numeros inteiros ?
Binário -> Octal -> Decimal -> Hexadecimal =)
svicente disse: 09.12.06 ás 22:20
Valeu, a dica! A funcao round() funcionou 100% para arredondar as contas que eu queria. 1 [ ]
Gustavo disse: 15.08.07 ás 09:15
Gostaria de seber se existe um modo de eu gerar um numero aleatorio direto em hexadecimal no mysql ou em php. De preferencia em mysql pois não pode existir numero repetido.
Obrigado