Usando a função sprintf()
Apesar de ter referenciado outras tarefas como relacionar exibição de moedas (float numbers), formatação de datas, numeros binários e hexadecimais, a maior vantagem desta função esta na integração de php+html. Para nosso sistema não há a possibilidade (pelo menos não achei até agora) de trocar o ponto decimal para vírgula, exibir os pontos de milhares e outras necessidades da lingua portuguesa. Prefira utilizar o number_format para esta tarefa.
Na integração do HTML+php, esta função é inigualável na montagem de combo box, checkbox e radius buttons, trabalhe um pouco com ela que sua vida ficará MUIIIIITO mais fácil.
Boa sorte a todos
Na integração do HTML+php, esta função é inigualável na montagem de combo box, checkbox e radius buttons, trabalhe um pouco com ela que sua vida ficará MUIIIIITO mais fácil.
Boa sorte a todos
Existe uma forma fácil de formatar os números e valores para o Brasil usando sprintf:
A função sprintf ou printf utiliza as informações da localidade atual. Isto pode, e vai, variar de um OS para outro.
Utilize antes das funções sprintf ou em um local genérico o seguinte :
setlocale(LC_ALL,'pt_BR');
O ideal é consultar a documentação de setlocale para mais detalhes.
Veja o resultado
em um exemplo simples:
<?php
$number = 192.65;
echo setlocale(LC_ALL,'pt_BR');
echo sprintf("%01.2f",$number);
?>
Produzirá a saída :
192,65
Usando isto vc pode estender para colocar a literal R$ antes e etc...
Espero ter ajudado !
Alexandre
A função sprintf ou printf utiliza as informações da localidade atual. Isto pode, e vai, variar de um OS para outro.
Utilize antes das funções sprintf ou em um local genérico o seguinte :
setlocale(LC_ALL,'pt_BR');
O ideal é consultar a documentação de setlocale para mais detalhes.
Veja o resultado
em um exemplo simples:
<?php
$number = 192.65;
echo setlocale(LC_ALL,'pt_BR');
echo sprintf("%01.2f",$number);
?>
Produzirá a saída :
192,65
Usando isto vc pode estender para colocar a literal R$ antes e etc...
Espero ter ajudado !
Alexandre
15/12/2005 5:04am
(~19 anos atrás)
Valeu, gostei muito da sua dica, ja fiquei muitas vezes doido na hora de imprimir muita informação, acho que agora terei menos problemas.
28/11/2005 4:59am
(~19 anos atrás)
É bom lembrar que é interessante usar stripslashes ao invés de escapar com barras invertidas... principalmente ao retornar de um banco de dados onde as vezes não sabemos que resultado virá.
ex: $nome = stripslashes($nome)
ex: $nome = stripslashes($nome)
09/01/2004 12:05pm
(~21 anos atrás)
Na realidade, sprintf() e printf() são a mesma função em php. Eu utilizei o Sprint no título e no preâmbulo do artigo pois é a função onde esta a descrição do uso no manual do PHP.
Mesmo no manual, você poderá verificar que a descrição da função se encontra no tópico sprintf. Se você acessar o printf, ele diz que a explicação esta na outra função. Para simplificar o entendimento de alguém que por ventura quisesse verificar no manual, tentei ser coerente.
Mesmo no manual, você poderá verificar que a descrição da função se encontra no tópico sprintf. Se você acessar o printf, ele diz que a explicação esta na outra função. Para simplificar o entendimento de alguém que por ventura quisesse verificar no manual, tentei ser coerente.
26/12/2003 5:47am
(~21 anos atrás)
Primeiro quero falar que ta bem legal o artigo... e eh bem interessante o uso dessa funcao.
Mas nao entendi se vc queria falar sobre sprintf ou printf, acho que provavelmente errou no titulo, ja que usou printf() no artigo
Mas nao entendi se vc queria falar sobre sprintf ou printf, acho que provavelmente errou no titulo, ja que usou printf() no artigo
21/12/2003 7:25pm
(~21 anos atrás)
Eu li o seu artigo e o achei muito interessante mas não estou conesguindo formatar o valor de mil e milhar, ou seja:
$v1 = 1,234
$v2 = 134,358
sprintf('%0.2f',$v1) = 1.24
sprintf('%0.2f',$v2) = 134.36
Até aí tudo bem, mas se eu tiver valores acima de 1000, como por exemplo
$v3 = 1234,44343
sprintf('%0.2f',$v3) = 1234.44
E eu queria que ficasse assim:
sprintf('%0.2f',$v3) = 1 234.44
Mas não fica... sabe como resolver este problema?