jmcastagnetto           Sun Dec 29 18:44:35 2002 EDT

  Modified files:              
    /phpdoc/en/reference/strings/functions      money-format.xml 
  Log:
  Finished documentation.
  
  
Index: phpdoc/en/reference/strings/functions/money-format.xml
diff -u phpdoc/en/reference/strings/functions/money-format.xml:1.1 
phpdoc/en/reference/strings/functions/money-format.xml:1.2
--- phpdoc/en/reference/strings/functions/money-format.xml:1.1  Sat Dec 28 15:55:51 
2002
+++ phpdoc/en/reference/strings/functions/money-format.xml      Sun Dec 29 18:44:35 
+2002
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.1 $ -->
+<!-- $Revision: 1.2 $ -->
   <refentry id="function.money-format">
    <refnamediv>
     <refname>money_format</refname>
@@ -112,20 +112,116 @@
         <term><literal>#</literal><replaceable>n</replaceable></term>
         <listitem>
          <para>
-          
+          The maximum number of digits (<replaceable>n</replaceable>) expected
+          to the left of the decimal character (e.g. the decimal point). It is
+          used usually to keep formatted output aligned in the same columns,
+          using the fill character if the number of digits is less than
+          <replaceable>n</replaceable>. If the number of actual digits is
+          bigger than <replaceable>n</replaceable>, then this specification is
+          ignored.
+         </para>
+         <para>
+          If grouping has not been suppressed using the <literal>^</literal>
+          flag, grouping separators will be inserted before the fill
+          characters (if any) are added. Grouping separators will not be
+          applied to fill characters, even if the fill character is a digit.
+         </para>
+         <para>
+          To ensure alignment, any characters appearing before or after the
+          number in the formatted output such as currency or sign symbols are
+          padded as necessary with space characters to make their positive and
+          negative formats an equal length.
+         </para>
+        </listitem>
+       </varlistentry>
+      </variablelist>
+     </para>
+    </formalpara>
+    <formalpara>
+     <title>
+      Right Precision
+     </title>
+     <para>
+      <variablelist>
+       <varlistentry>
+        <term><literal>.</literal><replaceable>p</replaceable></term>
+        <listitem>
+         <para>
+          A period followed by the number of digits
+          (<replaceable>p</replaceable>) after the decimal character. If the
+          value of <replaceable>p</replaceable> is 0 (zero), the decimal
+          character and the digits to its right will be omitted. If no right
+          precision is included, the default will dictated by the current
+          local in use. The amount being formatted is rounded to the specified 
+          number of digits prior to formatting.
          </para>
         </listitem>
        </varlistentry>
       </variablelist>
      </para>
     </formalpara>
+    <formalpara>
+     <title>
+      Conversion Characters
+     </title>
+     <para>
+      <variablelist>
+       <varlistentry>
+        <term><literal>i</literal></term>
+        <listitem>
+         <para>
+          The number is formatted according to the locale's international
+          currency format (e.g. for the USA locale: USD 1,234.56).
+         </para>
+        </listitem>
+       </varlistentry>
+       <varlistentry>
+        <term><literal>n</literal></term>
+        <listitem>
+         <para>
+          The number is formatted according to the locale's national
+          currency format (e.g. for the en_US locale: $1,234.56).
+         </para>
+        </listitem>
+       </varlistentry>
+       <varlistentry>
+        <term><literal>n</literal></term>
+        <listitem>
+         <para>
+          The number is formatted according to the locale's national
+          currency format (e.g. for the de_DE locale: DM1.234,56).
+         </para>
+        </listitem>
+       </varlistentry>
+       <varlistentry>
+        <term><literal>%</literal></term>
+        <listitem>
+         <para>
+          Returns the the <literal>%</literal> character.
+         </para>
+        </listitem>
+       </varlistentry>
+      </variablelist>
+     </para>
+    </formalpara>
+    <note>
+     <para>
+      The <constant>LC_MONETARY</constant> category of the locale settings,
+      affects the behavior of this function. Use
+      <function>setlocale</function> to set to the appropriate default locale
+      before using this function.
+     </para>
+     <para>
+      Characters before and after the formatting string will be returned
+      unchanged.
+     </para>
+    </note>
     <para>
     <example>
-     <title><function>number_format</function> Example</title>
+     <title><function>money_format</function> Example</title>
      <para>
-      For instance, French notation usually use two decimals,
-      comma (',') as decimal separator, and space (' ') as
-      thousand separator. This is achieved with this line :
+      We will use different locales and format specifications to
+      illustrate the use of this function.
      </para>
       <programlisting role="php">
 <![CDATA[
@@ -133,19 +229,42 @@
 
     $number = 1234.56;
 
-    // english notation (default)
-    $english_format_number = number_format($number);
-    // 1,234
-
-    // French notation
-    $nombre_format_francais = number_format($number, 2, ',', ' ');
-    // 1 234,56
-
-    $number = 1234.5678;
-
-    // english notation without thousands seperator
-    $english_format_number = number_format($number, 2, '.', '');
-    // 1234.57
+    // let's print the international format for the en_US locale
+    setlocale(LC_MONETARY, 'en_US');
+    echo money_format('%i', $number)."\n";
+    // USD 1,234.56
+
+    // Italian national format with 2 decimals`
+    setlocale(LC_MONETARY, 'it_IT');
+    echo money_format('%.2n', $number)."\n";
+    // L. 1.234,56
+
+    // Using a negative number
+    $number = -1234.5672;
+
+    // US national format, using () for negative numbers
+    // and 10 digits for left precision
+    setlocale(LC_MONETARY, 'en_US');
+    echo money_format('%(#10n', $number)."\n";
+    // ($        1,234.57)
+
+    // Similar format as above, adding the use of 2 digits of right 
+    // precision and '*' as a fill character
+    echo money_format('%=*(#10.2n', $number)."\n";
+    // ($********1,234.57)
+    
+    // Let's justify to the left, with 14 positions of width, 8 digits of
+    // left precision, 2 of right precision, withouth grouping character
+    // and using the international format for the de_DE locale.
+    setlocale(LC_MONETARY, 'de_DE');
+    echo money_format('%=*^-14#8.2i', 1234.56)."\n";
+    // DEM 1234,56****
+
+    // Let's add some blurb before and after the conversion specification
+    setlocale(LC_MONETARY, 'en_GB');
+    $fmt = 'The final value is %i (after a 10%% discount)';
+    echo money_format($fmt, 1234.56)."\n";
+    // The final value is  GBP 1,234.56 (after a 10% discount)
 
 ?>
 ]]>
@@ -153,7 +272,8 @@
      </example>
     </para>
     <para>
-     See also: <function>number_format</function>,<function>sprintf</function>,
+     See also: <function>setlocale</function>,
+     <function>number_format</function>,<function>sprintf</function>,
      <function>printf</function> and <function>sscanf</function>.
     </para>
    </refsect1>



-- 
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to