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
masssssssssssssssssssa show de bola
vlw
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.
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! 🙂
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])