Formatação de números em PHP

Verificando se o número é PAR ou IMPAR

<?php
function verNumero($numero) 
{  // Verificando o resto da divisão por 2
   if($numero % 2 == 0) 
   {  // Se o resto for igual a zero é par
      return "PAR";
   } 
   else 
   {  // Caso não seja zero é impar
      return "IMPAR";
   }
}
$n = 654646570;
// Chamando a função e passando o parametro
echo verNumero($n);
?> 

Trabalhando com potênciação

<?php
function calcula_potencia($base,$expoente){
    $nuns = $base;
    // For de 1 até o valor do expoente
    for($c = 1;$c < $expoente;$c++){
        $nuns = $nuns * $base;
    }
    $verifica = explode("E",$nuns);
    if(count($verifica) > 1) {
        $nuns = "Expoente muito elevado.";
    }
    return $nuns ;
}
// Chamando a função passando base 7 e expoente 2
$potenciacao = calcula_potencia(7,2);
// Imprimindo na tela o resultado
echo $potenciacao; 
?>

Verificando se um número é primo

<?php
$num = 1234567891;
if(nPrimo($num)) 
{
	echo "$num é primo.";
}
else 
{
	echo "$num não é primo.";
}
function nPrimo($numero) 
{   //com $numero > 2
    $p = 2 ;
    while($numero % $p != 0 && $p < sqrt($numero) ) $p+=1 ;    
    // 1 = Primo / 0 = ñ Primo
    return ($numero%$p==0) ? 0 : 1 ; 
}
?>

Trabalhando com Fatoração

<?php
$num = 123456789;
$resposta = fatorarando($num);
echo "Seus fatores: ";
foreach($resposta as $aux) echo "$aux ";
function fatorarando($numero) 
{  
	// $numero > 2
    $x=2 ;
    while($numero != 1) 
    {
        if($numero % $x == 0) 
        {   // Vetor recebendo a variavel $x
            $vet[] = $x;
            $numero = $numero/$x;
        }
        else 
        {
        	$x++;
        }
    }
    return $vet;
}
?>

Formatando moeda

Formatação para número inteiro

<?php
// Formatação para numero inteiro
$number = "1234567890000000";
$number=number_format($number,0,'.','.');
echo $number;
// resultado 1.234.567.890.000.000
?>

Formatação para número monetário

<?php
// Formatação para numero monetário
$number = "1234567890000000";
$number=number_format($number,2,',','.');
echo $number;
// resultado 1.234.567.890.000.000,00
?>

Formatação para número inteiro com espaçamento a cada 3 casas

<?php
// Formatação para numero inteiro com espaçamento a cada 3 casas
$number = "1234567890000000";
$number=number_format($number,0,'.',chr(0xA0));
echo $number;
// resultado 1 234 567 890 000 000
?>

Formatação para número em reais com decimal 99

<?php
// Formatação para numero em reais com decimal 99
$number = "2229346.99";
echo "R$" .number_format($number, 2, ',', '.');
// resultado R$2.229.346,99
?>

Formatação para número em reais com decimal 00

<?php
// Formatação para número em reais com decimal 00
$number = "222934699";
echo "R$" .number_format($number, 2, ',', '.');
// resultado R$222.934.699,00
?>

Formatação para número em reais sem decimal

<?php
// Formatação para número em reais sem decimal
$number = "222934699";
echo "R$" .number_format($number, 0, ',', '.');
// resultado R$222.934.699
?>

Formatação para número colocando virgula a cada 3 casas

<?php
// Colocando virgula a cada 3 casas
// Recebendo o valor por parametro
function formatar($input)
{
  if(strlen($input)<=3)
  { return $input; }
  $length=substr($input,0,strlen($input)-3);
  $formatted_input = formatar($length).",".substr($input,-3);
  return $formatted_input;
}
// numero a ser passado por parametro
$num = 1234567;
// imprimindo o valor
echo  formatar($num);
// resultado 1,234,567
?>

Formatação para número colocando ponto a cada 3 casas

<?php
// Colocando ponto a cada 3 casas
// Recebendo o valor por parametro
function formatando($input)
{
  if(strlen($input)<=3)
  { return $input; }
  $length=substr($input,0,strlen($input)-3);
  $formatted_input = formatando($length).".".substr($input,-3);
  return $formatted_input;
}
// numero a ser passado por parametro
$num = 1234567;
// imprimindo o valor
echo  formatando($num);
// resultado 1.234.567
?>

Por:
Carlos Silva
Desenvolvedor web, certificado ISPA CYCLADES e Macromedia. Desenvolvedor usando as tecnologias C#, JSP, PHP, JavaScript, XML, ABAP, Tableless e outros. Certificado em Segurança da Informação e atualmente trabalhando com ativos de Rede Cisco.
Em: Revista PHP

Compatilhe esse artigo!

4 comentários sobre “Formatação de números em PHP

  1. A função de formatar moeda não ta funcionando.

    Já eu gostei da função que coloca virgula a cada 3 casas, adaptei ela pra por a cada 2 casas pra imitar um valor monetário.

    Gostaria de um código que transformasse um valor inteiro em monetário. Ex: 29999 vira 299,99

    Se tiver responda aqui, ou faça um artigo, pois não acho uma função simples ( Com menos de 50 linhas xD ) que faça isso.

  2. Welker, se você considerar que a entrada vai ser o número completo, ou seja, sempre saberemos que os últimos dois dígitos serão os centavos, fica fácil. Você recebe o número e insere um ponto, por exemplo:

    $antes = substr($string, 0, $eh_aqui);
    $depois = substr($string, $eh_aqui + 1);
    $string = $antes . “.” . $depois;

    Depois utiliza o number_format:

    number_format($string, 2, ‘,’, ‘.’);

    Espero que ajude! Não deu nem cinco linhas! 🙂

  3. Fiz uma correção para resolver o problema dos valores negativos 🙂

    <?php

    function formata($numero)
    {
    $neg=false;
    if($numero{0}=='-'){
    $neg=true;
    $numero=substr($numero, 1);
    }

    if(strpos($numero,'.')!='')
    {
    $var=explode('.',$numero);
    if(strlen($var[0])==4)
    {
    $parte1=substr($var[0],0,1);
    $parte2=substr($var[0],1,3);
    if(strlen($var[1])<2)
    {
    $formatado=$parte1.'.'.$parte2.','.$var[1].'0';
    }else
    {
    $formatado=$parte1.'.'.$parte2.','.$var[1];
    }
    }
    elseif(strlen($var[0])==5)
    {
    $parte1=substr($var[0],0,2);
    $parte2=substr($var[0],2,3);
    if(strlen($var[1])<2)
    {
    $formatado=$parte1.'.'.$parte2.','.$var[1].'0';
    }
    else
    {
    $formatado=$parte1.'.'.$parte2.','.$var[1];
    }
    }
    elseif(strlen($var[0])==6)
    {
    $parte1=substr($var[0],0,3);
    $parte2=substr($var[0],3,3);
    if(strlen($var[1])<2)
    {
    $formatado=$parte1.'.'.$parte2.','.$var[1].'0';
    }
    else
    {
    $formatado=$parte1.'.'.$parte2.','.$var[1];
    }
    }
    elseif(strlen($var[0])==7)
    {
    $parte1=substr($var[0],0,1);
    $parte2=substr($var[0],1,3);
    $parte3=substr($var[0],4,3);
    if(strlen($var[1])<2)
    {
    $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.$var[1].'0';
    }
    else
    {
    $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.$var[1];
    }
    }
    elseif(strlen($var[0])==8)
    {
    $parte1=substr($var[0],0,2);
    $parte2=substr($var[0],2,3);
    $parte3=substr($var[0],5,3);
    if(strlen($var[1])<2){
    $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.$var[1].'0';
    }else{
    $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.$var[1];
    }
    }
    elseif(strlen($var[0])==9)
    {
    $parte1=substr($var[0],0,3);
    $parte2=substr($var[0],3,3);
    $parte3=substr($var[0],6,3);
    if(strlen($var[1])<2)
    {
    $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.$var[1].'0';
    }
    else
    {
    $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.$var[1];
    }
    }
    elseif(strlen($var[0])==10)
    {
    $parte1=substr($var[0],0,1);
    $parte2=substr($var[0],1,3);
    $parte3=substr($var[0],4,3);
    $parte4=substr($var[0],7,3);
    if(strlen($var[1])<2)
    {
    $formatado=$parte1.'.'.$parte2.'.'.$parte3.'.'.$parte4.','.$var[1].'0';
    }
    else
    {
    $formatado=$parte1.'.'.$parte2.'.'.$parte3.'.'.$parte4.','.$var[1];
    }
    }
    else
    {
    if(strlen($var[1])

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.