<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >money_format</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="Manual do PHP" HREF="index.html"><LINK REL="UP" TITLE="String" HREF="ref.strings.html"><LINK REL="PREVIOUS" TITLE="metaphone" HREF="function.metaphone.html"><LINK REL="NEXT" TITLE="nl_langinfo" HREF="function.nl-langinfo.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="refentry" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >Manual do PHP</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.metaphone.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.nl-langinfo.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.money-format" ></A >money_format</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN219882" ></A ><P > (PHP 4 >= 4.3.0, PHP 5)</P >money_format -- Formata um número como uma string de moeda</DIV ><DIV CLASS="refsect1" ><A NAME="AEN219885" ></A ><H2 >Descrição</H2 >string <B CLASS="methodname" >money_format</B > ( string formato, float numero )<BR ></BR ><P > <B CLASS="function" >money_format()</B > retorna uma versão formatada de um <CODE CLASS="parameter" >numero</CODE >. Esta função engloba a biblioteca de função do C <B CLASS="function" >strfmon()</B >, com a diferença que esta implementação converte apenas um número por vez. </P ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > A função <B CLASS="function" >money_format()</B > é apenas definida se o sistema tem capacidades de strfmon. Por exemplo, o Windows não tem, então <B CLASS="function" >money_format()</B > está indefinida o Windows. </P ></BLOCKQUOTE ></DIV ><P > A especificação do formato consistem da seguinte sequência: <P ></P ><UL ><LI ><P >a <TT CLASS="literal" >%</TT > character</P ></LI ><LI ><P >flags opcionais</P ></LI ><LI ><P >largura de campo opcional</P ></LI ><LI ><P >precisão da esquerda opcional</P ></LI ><LI ><P >precisão da direita opcional</P ></LI ><LI ><P >conversão de caractere requerida</P ></LI ></UL > </P ><DIV CLASS="formalpara" ><P ><B >Flags. </B > Uma ou mais, das flags opcionais abaixo podem ser usadas: <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><TT CLASS="literal" >=</TT ><TT CLASS="replaceable" ><I >f</I ></TT ></DT ><DD ><P > O caracter <TT CLASS="literal" >=</TT > seguido por um caractere (byte simples) <TT CLASS="replaceable" ><I >f</I ></TT > para ser usado como o caracter númerico de preenchimento. O caractere de preenchimento padrão é o espaço. </P ></DD ><DT ><TT CLASS="literal" >^</TT ></DT ><DD ><P > Desabilite o uso de agrupamento de caractere (como definido pela localidade atual). </P ></DD ><DT ><TT CLASS="literal" >+</TT > ou <TT CLASS="literal" >(</TT ></DT ><DD ><P > Especifique o estilo de formatação para números positivos e negativos. Se <TT CLASS="literal" >+</TT > é usado, o equivalente da localidade para <TT CLASS="literal" >+</TT > e <TT CLASS="literal" >-</TT > será usado. Se <TT CLASS="literal" >(</TT > é usado, quantias negativas são fechadas em parêntesis. se nenhuma especificação é dada, o padrão será <TT CLASS="literal" >+</TT >. </P ></DD ><DT ><TT CLASS="literal" >!</TT ></DT ><DD ><P > Suprima o simbolo atual da string de saída. </P ></DD ><DT ><TT CLASS="literal" >-</TT ></DT ><DD ><P > Se presente, isso fará todos os campos esquerda-justificados (arrumados para a direita), em oposição ao padrão que é para campos serem direita-justificados (arrumados para a esquerda). </P ></DD ></DL ></DIV > </P ></DIV ><DIV CLASS="formalpara" ><P ><B >Largura de campo. </B > <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><TT CLASS="replaceable" ><I >w</I ></TT ></DT ><DD ><P > Uma string de dígito decimal especificando uma largura de campo mínima. O campo será direita-justificado a menos que o flag <TT CLASS="literal" >-</TT > seja usado. Valor padrão é 0 (zero) por definição. </P ></DD ></DL ></DIV > </P ></DIV ><DIV CLASS="formalpara" ><P ><B >Precisão de esquerdan. </B > <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><TT CLASS="literal" >#</TT ><TT CLASS="replaceable" ><I >n</I ></TT ></DT ><DD ><P > O número máximo de dígitos (<TT CLASS="replaceable" ><I >n</I ></TT >) esperado para a esquerda do caracatere decimal(ex. ponto decimal). Isso é usado normalmente para manter a saída formatada alinhada nas mesmas colunas, usando o caractere de preenchimento se o número de dígitos é menor do que <TT CLASS="replaceable" ><I >n</I ></TT >. Se o número de dígitos atual é maior do que <TT CLASS="replaceable" ><I >n</I ></TT >, então esta especificação é ignorada. </P ><P > Se agrupamento foi suprimido usando a flag <TT CLASS="literal" >^</TT >, separatores de agrupamento serão inseridos antes dos caracteres de preenchimento (se algum) são adicionados, mesmo se o caractere de preenchimento é um dígito. </P ><P > Para garantir alinhamento, quaisquer caracteres aparecendo, antes ou depois do número em saída formatada, como moeda ou simbolos de sinal, são arrumado conforme necessário, com caracteres de espaço para fazer seus formatos positivos e negativos num comprimento igual. </P ></DD ></DL ></DIV > </P ></DIV ><DIV CLASS="formalpara" ><P ><B > Precisão de direita . </B > <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><TT CLASS="literal" >.</TT ><TT CLASS="replaceable" ><I >p</I ></TT ></DT ><DD ><P > Um período seguido por um número de dígitos (<TT CLASS="replaceable" ><I >p</I ></TT >) depois do caractere decimal. Se o valor de <TT CLASS="replaceable" ><I >p</I ></TT > é 0 (zero), o caractere decimal e os digitos à sua direita serão omitidos. Se nenhuma precisão de direita é incluida, o padrão será ditado pela localidade atual em uso. A quantia sendo formatada é arredondada para o número de dígitos especificados a priori para ser formatado. </P ></DD ></DL ></DIV > </P ></DIV ><DIV CLASS="formalpara" ><P ><B > Caracteres de conversão . </B > <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><TT CLASS="literal" >i</TT ></DT ><DD ><P > O número é formatado de acordo com o formato de moeda internacional da localidade (ex para a localidade de EUA: USD 1,234.56). </P ></DD ><DT ><TT CLASS="literal" >n</TT ></DT ><DD ><P > O número é formatado de acordo com o formato de moeda nacional da localidade (ex: para a localidade de_DE: DM1.234,56). </P ></DD ><DT ><TT CLASS="literal" >%</TT ></DT ><DD ><P > Retorna o caractere <TT CLASS="literal" >%</TT >. </P ></DD ></DL ></DIV > </P ></DIV ><DIV CLASS="note" ><BLOCKQUOTE CLASS="note" ><P ><B >Nota: </B > A categoria <TT CLASS="constant" ><B >LC_MONETARY</B ></TT > de configurações de localidade, afeta o comportamento desta função. Utilize <A HREF="function.setlocale.html" ><B CLASS="function" >setlocale()</B ></A > para definir a localidade padrão apropriadamente antes de usar esta função. </P ><P > Os caracteres antes e depois da string de formatação serão retornados sem modificação. </P ></BLOCKQUOTE ></DIV ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN220021" ></A ><P ><B >Exemplo 1. <B CLASS="function" >money_format()</B > Exemplo</B ></P ><P > Nós usaremos localidades diferentes e especificações de formatos e localidades para ilustrar o uso desta função. </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /><br />$number </font><font color="#007700">= </font><font color="#0000BB">1234.56</font><font color="#007700">;<br /><br /></font><font color="#FF8000">// let's print the international format for the en_US locale<br /></font><font color="#0000BB">setlocale</font><font color="#007700">(</font><font color="#0000BB">LC_MONETARY</font><font color="#007700">, </font><font color="#DD0000">'en_US'</font><font color="#007700">);<br />echo </font><font color="#0000BB">money_format</font><font color="#007700">(</font><font color="#DD0000">'%i'</font><font color="#007700">, </font><font color="#0000BB">$number</font><font color="#007700">) . </font><font color="#DD0000">"\n"</font><font color="#007700">; <br /></font><font color="#FF8000">// USD 1,234.56<br /><br />// Italian national format with 2 decimals`<br /></font><font color="#0000BB">setlocale</font><font color="#007700">(</font><font color="#0000BB">LC_MONETARY</font><font color="#007700">, </font><font color="#DD0000">'it_IT'</font><font color="#007700">);<br />echo </font><font color="#0000BB">money_format</font><font color="#007700">(</font><font color="#DD0000">'%.2n'</font><font color="#007700">, </font><font color="#0000BB">$number</font><font color="#007700">) . </font><font color="#DD0000">"\n"</font><font color="#007700">;<br /></font><font color="#FF8000">// L. 1.234,56<br /><br />// Using a negative number<br /></font><font color="#0000BB">$number </font><font color="#007700">= -</font><font color="#0000BB">1234.5672</font><font color="#007700">;<br /><br /></font><font color="#FF8000">// US national format, using () for negative numbers<br />// and 10 digits for left precision<br /></font><font color="#0000BB">setlocale</font><font color="#007700">(</font><font color="#0000BB">LC_MONETARY</font><font color="#007700">, </font><font color="#DD0000">'en_US'</font><font color="#007700">);<br />echo </font><font color="#0000BB">money_format</font><font color="#007700">(</font><font color="#DD0000">'%(#10n'</font><font color="#007700">, </font><font color="#0000BB">$number</font><font color="#007700">) . </font><font color="#DD0000">"\n"</font><font color="#007700">;<br /></font><font color="#FF8000">// ($ 1,234.57)<br /><br />// Similar format as above, adding the use of 2 digits of right <br />// precision and '*' as a fill character<br /></font><font color="#007700">echo </font><font color="#0000BB">money_format</font><font color="#007700">(</font><font color="#DD0000">'%=*(#10.2n'</font><font color="#007700">, </font><font color="#0000BB">$number</font><font color="#007700">) . </font><font color="#DD0000">"\n"</font><font color="#007700">;<br /></font><font color="#FF8000">// ($********1,234.57)<br /> <br />// Let's justify to the left, with 14 positions of width, 8 digits of<br />// left precision, 2 of right precision, withouth grouping character<br />// and using the international format for the de_DE locale.<br /></font><font color="#0000BB">setlocale</font><font color="#007700">(</font><font color="#0000BB">LC_MONETARY</font><font color="#007700">, </font><font color="#DD0000">'de_DE'</font><font color="#007700">);<br />echo </font><font color="#0000BB">money_format</font><font color="#007700">(</font><font color="#DD0000">'%=*^-14#8.2i'</font><font color="#007700">, </font><font color="#0000BB">1234.56</font><font color="#007700">) . </font><font color="#DD0000">"\n"</font><font color="#007700">;<br /></font><font color="#FF8000">// DEM 1234,56****<br /><br />// Let's add some blurb before and after the conversion specification<br /></font><font color="#0000BB">setlocale</font><font color="#007700">(</font><font color="#0000BB">LC_MONETARY</font><font color="#007700">, </font><font color="#DD0000">'en_GB'</font><font color="#007700">);<br /></font><font color="#0000BB">$fmt </font><font color="#007700">= </font><font color="#DD0000">'The final value is %i (after a 10%% discount)'</font><font color="#007700">;<br />echo </font><font color="#0000BB">money_format</font><font color="#007700">(</font><font color="#0000BB">$fmt</font><font color="#007700">, </font><font color="#0000BB">1234.56</font><font color="#007700">) . </font><font color="#DD0000">"\n"</font><font color="#007700">;<br /></font><font color="#FF8000">// The final value is GBP 1,234.56 (after a 10% discount)<br /><br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ><P > Veja também: <A HREF="function.setlocale.html" ><B CLASS="function" >setlocale()</B ></A >, <A HREF="function.number-format.html" ><B CLASS="function" >number_format()</B ></A >,<A HREF="function.sprintf.html" ><B CLASS="function" >sprintf()</B ></A >, <A HREF="function.printf.html" ><B CLASS="function" >printf()</B ></A > e <A HREF="function.sscanf.html" ><B CLASS="function" >sscanf()</B ></A >. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.metaphone.html" ACCESSKEY="P" >Anterior</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Principal</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.nl-langinfo.html" ACCESSKEY="N" >Próxima</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >metaphone</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.strings.html" ACCESSKEY="U" >Acima</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >nl_langinfo</TD ></TR ></TABLE ></DIV ></BODY ></HTML >