goncin@wordpress.com:~$ _

Linux, programação e toda sorte de nerdices

GExtenso: classe para geração de números por extenso em PHP

Post publicado originalmente em http://devfranca.ning.com/profiles/blogs/gextenso-classe-para-geracao em 2 de março de 2010.

GExtenso é uma classe que gera a representação por extenso de um número ou valor monetário.

Sua implementação foi feita como prova de conceito, utilizando:

  • Métodos estáticos, implementando o padrão de projeto (design pattern) SINGLETON;
  • Chamadas recursivas a métodos, minimizando repetições e mantendo o código enxuto;
  • Uso de pseudoconstantes (‘private static’) diante das limitações das constantes de classe;
  • Tratamento de erros por intermédio de exceções; e
  • Utilização do phpDocumentor para documentação do código fonte e geração automática de documentação externa.

EXEMPLOS DE USO

Para obter o extenso de um número, utilize GExtenso::numero.

echo GExtenso::numero(832); // oitocentos e trinta e dois
echo GExtenso::numero(832, GExtenso::GENERO_FEM); // oitocentas e trinta e duas

Para obter o extenso de um valor monetário, utilize GExtenso::moeda.

// IMPORTANTE: veja nota sobre o parâmetro 'valor' na documentação do método!
echo GExtenso::moeda(15402); // cento e cinquenta e quatro reais e dois centavos
echo GExtenso::moeda(47); // quarenta e sete centavos
echo GExtenso::moeda(357082, 2,
  array('peseta', 'pesetas', GExtenso::GENERO_FEM),
  array('cêntimo', 'cêntimos', GExtenso::GENERO_MASC)
); // três mil, quinhentas e setenta pesetas e oitenta e dois cêntimos

Download via github: http://github.com/goncin/GExtenso

Anúncios

5 Respostas para “GExtenso: classe para geração de números por extenso em PHP

  1. Pingback: Números por extenso agora também em Ruby! « goncin@wordpress.com:~$ _

  2. Marcos Junior 08/07/2011 às 17\0506

    Acabei de implementar em um projeto aqui e funcionou perfeitamente…
    Parabéns! E o brigado por compartilhar..

  3. Maison 02/02/2012 às 10\1040

    testei aqui e esta bem bugado manda ele fazer imprimir somente um centavo, ou tipo dois reais e um centavo, o plural e singular nao bate bem da bola e quando for imprimir algum numero inteiro com decimal igual a 1 ele zua tudo. Ficou no +-

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: