Criar Web, manuais e recursos para desenvolvimento web
Manuais
Programas
FAQS
Diretório
Comunidade
  Inicio > Manuais > Workshop de PHP
SEÇÕES
Manuais relacionados
+Workshop de PHP
Categorias
+Scripts em PHP

Índice do Manual Workshop de PHP
+ Gestão de ficheiros através de PHP
+ Upload de ficheiros com PHP
+ Verificar a existência de uma URL
+ Leitura sequencial de ficheiros com PHP
+ Escritura em ficheiros com PHP
+ Gestão de directórios com PHP
+ Função que escreve um campo select com valores de uma base de dados
+ Receber o último ID de uma inserção com PHP e MySQL
+ Recolher dados de um Select Multiple com PHP
+ Enviar e-mails pelo PHP
+ Validar um endereço email em PHP
+ Loop para receber todas as variáveis por POST em PHP
+ Enviar um formulário por mail com PHP
+ Paginação de resultados com PHP e MySQL
+ Usuários ativos com PHP
+ Listas de elementos com cores alternas em PHP
+ Programas de livre distribuição em PHP
+ phpMyAdmin
+ Formatação de uma cadeia
+ Cálculo dos dias de um mês em PHP
+ Contador simples para páginas PHP
+ Avaliações dos usuários em PHP
+ Rastrear os robôs de buscadores
+ Recomendar um site usando PHP
+ Criação de um log de erros
+ Comprimir página PHP
+ Contador PHP com imagens
+ Editor PHP Maguma Studio
+ SiteMaps de Google em PHP
+ Teste de velocidade de conexão à Internet
+ Mostrar Conteúdo de acordo com o país em PHP
+ Conteúdos em banco de dados com PHP
+ Problemas com as datas em timestamp Unix de PHP
+ Contar o número de linhas e caracteres em arquivo PHP
+ Transformação Doc, Odt ou Rtf para PDF
+ Preencher um arquivo RTF e gerar o PDF
+ Converter arquivos ods ou xls para pdf
+ PHP isam, ferramenta Web para Arquivos Planos
+ Undefined variable ou Undefined index
+ Agregar carinhas ao sistema
+ Paginator, script para paginação com PHP e MySQL
+ Executar scripts PHP automaticamente através do cron com CURL
+ Uso do FTP com PHP
+ Instalação de One or Zero PHP Helpdesk
+ Portal PHP Nuke
+ Gerando feed RSS de notícias em PHP
+ Blasten blt-SEARCH 1.0.5
+ Classes e Objetos em PHP
+ Recuperando a qualidade de uma imagem JPEG
+ Comprovar se existe o domínio do correio
+ Tutorial de BBCode
+ Função em PHP para o cálculo de minutos transcorridos em duas horas dadas
+ Criação de gráficos em PHP com JpGraph
+ Gerar documentos de Word RTF com PHP
+ Introdução ao Symfony
+ Arredondar decimais em PHP
+ Envio de boletins a e-mails de um banco de dados MySQL
+ Htaccess e páginas dinâmicas
+ Criando imagens com PHP
+ Programar um buscador com PHP e MySQL
+ Loop para receber todos os dados de uma fila de um recordset com PHP

Descrição dos capítulos

Parceiros
- CSS para Web Design
- S.O.S Designers
- Slackware-Brasil
- Crie seu Web site
- Oficina da Net


Arredondar decimais em PHP

Realizamos uma função para arredondar decimais em PHP, ou seja, formatar um float para que tenha um número de decimais qualquer que se deseje.


Entre as funções matemáticas de PHP se encontra uma que nos permite arredondar um float (número em vírgula flutuante ou número com decimais) ao valor inteiro mais próximo. Trata-se da função round(). Para explicar seu uso, o melhor é vê-la com um par de exemplos:

round(0.6) devolveria o valor inteiro 1.
round(7.3) devolveria o valor inteiro 7.


Porém, em muitas ocasiões vamos necessitar arredondar um número em vírgula flutuante de maneira que conservemos alguns decimais. Por exemplo, se estamos fazendo operações com euros ou dólares, o lógico é que conservemos dois decimais no arredondamento. Por estranho que pareça, PHP não inclui uma função de arredondamento que permita arredondar conservando decimais, e por isso que vamos comentar neste artigo uma maneira de consegui-lo.

Arredondamento com dois decimais

Vamos utilizar um pequeno truque para arredondar com dois decimais, ajudando-nos através da função round() de PHP. Trata-se de fazer esta simples operação matemática.

Dado um valor, primeiro vamos multiplicá-lo por 100, vamos arredondar e finalmente, vamos dividir o resultado outra vez por 100. O caso, em um exemplo, é este:

Para o valor 2.7931. Primeiro o multiplicamos por 100. Temos o valor 279.31. Agora fazemos o arredondamento, visto que os 0.31 queremos nos desfazer deles. Faríamos um round (279.31) que devolve como resultado 279. Por último, a este valor o dividimos por 100, para recuperar os decimais, o que nos dá 2.79, que é o valor que desejávamos obter.

A fórmula que sacamos seria a seguinte:

round(valor_float * 100) / 100

Se quisermos, podemos utilizar uma função como esta para o arredondamento até obter duas cifras decimais:

function arredondar_dois_decimal($valor) {
   $float_arredondar=round($valor * 100) / 100;
   return $float_arredondado;
}


Para um jogo de valores como este:

arredondar_dois_decimal(3.56666)
arredondar _dois_decimal(3.008)
arredondar _dois_decimal(3.66)
arredondar _dois_decimal(3.199)
arredondar _dois_decimal(3.9999)


Daria o seguinte resultado:

3.57
3.01
3.66
3.2
4

Arredondar para um número de decimais qualquer

Seguindo as pautas marcadas no exemplo anterior, vamos criar uma função para arredondar um float a qualquer número de decimais desejado.

Trata-se de aplicar a mesma lógica anterior. Para arredondar dois decimais vimos que havia que multiplicar por 100, arredondar e logo dividir outra vez por 100. Se quisermos arredondar com um só decimal, teremos que multiplicar por 10, arredondar e logo dividir outra vez por 10.

Vamos realizar um exemplo de arredondamento a três decimais. Temos o valor 0.65195. Como queremos conservar 3 decimais, devemos multiplicar por 1000, com o qual obtemos 651.95. Agora fazemos o arredondamento com a função round(), que nos deixa a cifra sem decimais em 652 (se arredonda ao inteiro mais próximo). Finalmente, devemos voltar a dividir por 1000 o valor, com o qual temos 0.652.

A regra então é que temos que multiplicar e logo dividir, pela potência de 10 com o número de decimais que desejarmos conservar. Para obter potências em PHP temos a função pow(), que recebe a base e expoente da potência buscada.

Por exemplo, pow(10,3) nos devolve 1000 e pow(10,1) nos devolve 10.

Com esta função em PHP poderemos obter o arredondamento aos decimais que se deseje.

function arredondado ($numero, $decimais) {
   $fator = pow(10, $decimais);
   return (round($numero*$fator)/$fator); }


Se a chamamos com um jogo de valores como estes:

arredondado (0.00211,3)
arredondado (8.56,2)
arredondado (7.26,1)
arredondado (211,3)
arredondado (2.009,2)


Obteremos os seguintes resultados:

0.002
8.56
7.3
211
2.01

Esperamos que este par de funções sejam úteis. Há que agradecer a Héctor Alonso a segunda das funções mostradas neste artigo.

Referências: Também recomendamos a leitura da FAQ Formatar decimais em PHP, onde se explica com detalhe a função de PHP number_format(), que além de arredondar decimais, permite formatar o número para que mostre o separador que desejemos nos milhares e nos decimais.

Se trabalhamos com ASP, temos outro artigo para aprender a arredondar decimais em ASP.

Autoria e outras referências sobre este artigo

Manuais relacionados com este artigo
Dentro de Workshop de PHP

Categorias relacionadas
Através das categorias do nosso diretório podem ser encontrados outros tipos de recursos relacionados com este artigo:
+ Entrar em Scripts em PHP


Comentários dos visitantes
Os comentários dos visitantes são para ampliar a informação do artigo. Todos podem participar.
Acrescentar um comentário do artigo Acrescentar um comentário do artigo



Sobre nós | Copyright | Anuncie | Entrar em contato <criarweb>

Hospedado por Hostnet Hospedagem de Sites