   #PHP Manual String functions metaphone nl_langinfo

   PHP Manual
   Prev  Next
   ______________________________________________________________________

                                 money_format

   (PHP 4 >= 4.3.0)
   money_format -- Formats a number as a currency string

Description

   string money_format ( string format, float number)

   money_format() returns a formatted version of number. This function
   wraps the C library function strfmon(), with the difference that this
   implementation converts only one number at a time.

     Note: The function money_format() is only defined if the system has
     strfmon capabilities. For example, Windows does not, so
     money_format() is undefined in Windows.

   The format specification consists of the following sequence:

     * a % character
     * optional flags
     * optional field width
     * optional left precision
     * optional right precision
     * a required conversion character

   Flags. One or more of the optional flags below can be used:

   =f
          The character = followed by a a (single byte) character f to be
          used as the numeric fill character. The default fill character
          is space.

   ^
          Disable the use of grouping characters (as defined by the
          current locale).

   + or (
          Specify the formatting style for positive and negative numbers.
          If + is used, the locale's equivalent for + and - will be used.
          If ( is used, negative amounts are enclosed in parenthesis. If
          no specification is given, the default is +.

   !
          Suppress the currency symbol from the output string.

   -
          If present, it will make all fields left-justified (padded to
          the right), as opposed to the default which is for the fields
          to be right-justified (padded to the left).

   Field width.

   w
          A decimal digit string specifying a minimum field width. Field
          will be right-justified unless the flag - is used. Default
          value is 0 (zero).

   Left precision.

   #n
          The maximum number of digits (n) 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 n. If the
          number of actual digits is bigger than n, then this
          specification is ignored.

          If grouping has not been suppressed using the ^ 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.

          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.

   Right precision .

   .p
          A period followed by the number of digits (p) after the decimal
          character. If the value of p 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.

   Conversion characters .

   i
          The number is formatted according to the locale's international
          currency format (e.g. for the USA locale: USD 1,234.56).

   n
          The number is formatted according to the locale's national
          currency format (e.g. for the de_DE locale: DM1.234,56).

   %
          Returns the the % character.

     Note: The LC_MONETARY category of the locale settings, affects the
     behavior of this function. Use setlocale() to set to the
     appropriate default locale before using this function.

     Characters before and after the formatting string will be returned
     unchanged.

   Example 1. money_format() Example

   We will use different locales and format specifications to illustrate
   the use of this function.
   <?php
   $number = 1234.56;
   // 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)
   ?>

   See also: setlocale(), number_format(),sprintf(), printf() and
   sscanf().
   ______________________________________________________________________

   Prev      Home        Next
   metaphone  Up  nl_langinfo
