Visitantes que leram esse artigo, também visitaram:
  • Jogando na Mega-Sena com chances de 1 para 10 mil
  • Matemáticos ganharam a loteria com fórmula igual a do Super Aposta do Clube
  • Site do Fundão: Algoritmo Insertion Sort
  • As Quatro Operações no Excel – Para Concursos
  • Trocando Linhas e Colunas de Posição no Excel


  • Formatação de números em PHP

    Postado por Plinio Cruz em 13 de agosto de 2009 na categoria PHP, Programação | 4 Comments to Read

    1 Estrela2 Estrela3 Estrela4 Estrela5 Estrela (1 votos, média: 5,00)
    Loading ... Loading ...

    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

    <?php
    // Recebe o parametro $numero
    // Existe outra maneira muito mais fácil
    // Mas o objetivo e trabalhar seus conhecimentos
    function formata($numero)
    {
    	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])&lt;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])&lt;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])&lt;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])&lt;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])&lt;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])&lt;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])&lt;2)
    		     {
    		     	$formatado=$parte1.'.'.$parte2.'.'.$parte3.'.'.$parte4.','.$var[1].'0';
    		     }
    		     else
    		     {
    		     	$formatado=$parte1.'.'.$parte2.'.'.$parte3.'.'.$parte4.','.$var[1];
    		     }
    		   }
    		   else
    		   {
    		     if(strlen($var[1])&lt;2)
    		     {
    		    	 $formatado=$var[0].','.$var[1].'0';
    		     }
    		     else
    		     {
    		    	 $formatado=$var[0].','.$var[1];
    		     }
    		   }
    	  }
    	  else
    	  {
    	     $var=$numero;
    	   if(strlen($var)==4)
    	   {
    	     $parte1=substr($var,0,1);
    	     $parte2=substr($var,1,3);
    	     $formatado=$parte1.'.'.$parte2.','.'00';
    	   }
    	   elseif(strlen($var)==5)
    	   {
    	     $parte1=substr($var,0,2);
    	     $parte2=substr($var,2,3);
    	     $formatado=$parte1.'.'.$parte2.','.'00';
    	   }
    	   elseif(strlen($var)==6)
    	   {
    	     $parte1=substr($var,0,3);
    	     $parte2=substr($var,3,3);
    	     $formatado=$parte1.'.'.$parte2.','.'00';
    	   }
    	   elseif(strlen($var)==7)
    	   {
    	     $parte1=substr($var,0,1);
    	     $parte2=substr($var,1,3);
    	     $parte3=substr($var,4,3);
    	     $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.'00';
    	   }
    	   elseif(strlen($var)==8)
    	   {
    	     $parte1=substr($var,0,2);
    	     $parte2=substr($var,2,3);
    	     $parte3=substr($var,5,3);
    	     $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.'00';
    	   }
    	   elseif(strlen($var)==9)
    	   {
    	     $parte1=substr($var,0,3);
    	     $parte2=substr($var,3,3);
    	     $parte3=substr($var,6,3);
    	     $formatado=$parte1.'.'.$parte2.'.'.$parte3.','.'00';
    	   }
    	   elseif(strlen($var)==10)
    	   {
    	     $parte1=substr($var,0,1);
    	     $parte2=substr($var,1,3);
    	     $parte3=substr($var,4,3);
    	     $parte4=substr($var,7,3);
    	     $formatado=$parte1.'.'.$parte2.'.'.$parte3.'.'.$parte4.','.'00';
    	   }
    	   else
    	   {
    	     $formatado=$var.','.'00';
    	   }
    	}
    	  return $formatado." Reais";
    }
    $num = 1234567890;
    echo formata($num);
    ?>

    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

    Educação a Distância

    • rodrigo said,

      masssssssssssssssssssa show de bola

      vlw

    • Welker said,

      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.

    • Plinio Cruz said,

      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! :)

    • Anderson Meggiolaro said,

      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 seu comentário