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.
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:
The number to be formatted.
Returns the formatted string. Characters before and after the formatting string will be returned unchanged. Non-numeric number
causes returning NULL
and emitting E_WARNING
.
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 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.
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"; // Eu 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"; // Eu 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) ?>
sscanf() -
printf() -
Please login to continue.