Formatar valores numéricos no formato ###.###,##
Escrevi esta função para resolver dois problemas que tive. Um foi escrever números muito grandes formatados corretamente e o outro foi escrever números decimais usando separadores de decimais e de milhar no formato brasileiro sem precisar ficar passando diversos argumentos para a função como se faz com number_format.
Quando o número é muito grande há o problema dele ser convertido para notação científica.
Funciona tanto para números quanto para strings
Exemplos de uso
Quando o número é muito grande há o problema dele ser convertido para notação científica.
Funciona tanto para números quanto para strings
Exemplos de uso
$hum = 1000.25; $dois = "1.000.000,90"; $tres = "1000100,55"; $quatro = 1321023; echo my_number_format($hum); // 1.000,25 echo my_number_format($dois); // 1.000.000,90 echo my_number_format($tres); // 1.000.100,55 echo my_number_format($quatro); // 13.210,23
Data | Autor | Changelog | Download |
---|---|---|---|
18/02/2010 2:46am | Marcos Regis | - | Versão 1.0.0 |
Bom, Marcos, neste caso melhor colocar como outro script.
Eu realmente tive dúvidas ao colocar o número da versão. Realmente se muda estruturalmente, muda o primeiro número, só que o meu script não estava 100%. Então seria estranho eu colocar 2.0.0. Deveria colocar 2.0.0dev ?
Eu realmente tive dúvidas ao colocar o número da versão. Realmente se muda estruturalmente, muda o primeiro número, só que o meu script não estava 100%. Então seria estranho eu colocar 2.0.0. Deveria colocar 2.0.0dev ?
28/02/2010 11:25pm
(~15 anos atrás)
Só depois percebi que usei mesmo o nome my_number_format e então apenas o enunciado estava incorreto.
Alterei o enunciado e removi a menção a money_format.
Infelizmente o Rubens não levou em consideração os exemplos postados e postou uma função que retorna valores diferentes se usados os argumentos do exemplo.
A idéia não era implementar money_format e sim facilitar o correto mascaramento de valores numéricos no padrão brasileiro.
Fica então avisado a quem for usar os scripts que a versão 1.0.0 é um mascarador para valores numéricos para o padrão brasileiro e a 1.9.0 uma alternativa a money_format
Alterei o enunciado e removi a menção a money_format.
Infelizmente o Rubens não levou em consideração os exemplos postados e postou uma função que retorna valores diferentes se usados os argumentos do exemplo.
A idéia não era implementar money_format e sim facilitar o correto mascaramento de valores numéricos no padrão brasileiro.
Fica então avisado a quem for usar os scripts que a versão 1.0.0 é um mascarador para valores numéricos para o padrão brasileiro e a 1.9.0 uma alternativa a money_format
27/02/2010 11:09pm
(~15 anos atrás)
Realmente acabei usando o nome errado porque copiei e colei de um arquivo antigo que tinha. Era para ser my_number_format, afinal ela nem coloca simbolo de moeda.
Quanto ao código que postou eu já havia usado desta forma e não publiquei porque tive problemas com localeconv();
O vetor retornado estava vazio e não havia as informações da localidade.
Por isso não a utilizo.
Para a função money_format é melhor usar esta que postou ou aquela disponível na página da documentação passada.
Obs.: A versão deveria ter sido colocado como 2.0.0 já que é um outro algoritmo
Quanto ao código que postou eu já havia usado desta forma e não publiquei porque tive problemas com localeconv();
O vetor retornado estava vazio e não havia as informações da localidade.
Por isso não a utilizo.
Para a função money_format é melhor usar esta que postou ou aquela disponível na página da documentação passada.
Obs.: A versão deveria ter sido colocado como 2.0.0 já que é um outro algoritmo
27/02/2010 10:12pm
(~15 anos atrás)
Marcos, realmente essa conversão para notação científica é muito chato.
Porém, imagino que o script que colocou não represente uma alternativa ao money_format, mas uma forma conveniente de formatar números. Acho que seria mais conveniente chamar de my_number_format.
Coloquei um código que tenta simular a função money_format para sistemas que não possuem a função. Ele é afetado pelo valor de setlocale.
Porém, imagino que o script que colocou não represente uma alternativa ao money_format, mas uma forma conveniente de formatar números. Acho que seria mais conveniente chamar de my_number_format.
Coloquei um código que tenta simular a função money_format para sistemas que não possuem a função. Ele é afetado pelo valor de setlocale.
setlocale(LC_MONETARY, 'pt_BR.UTF8'); echo my_money_format(1.2); // R$ 1,20
27/02/2010 9:00pm
(~15 anos atrás)
Valeu.