money_format
(PHP 4 >= 4.3.0, PHP 5) money_format — Форматирует число как денежную величину
Описание
string money_format
( string $format
, float $number
)
Замечание:
Функция money_format() определена только если
в системе присутствует функция strfmon. Например, в Windows она
отсутствует, поэтому money_format() не определена
в Windows.
Описание формата состоит из:
символа %
необязательных флагов
необязательной ширины поля
необязательной точности до запятой
необязательной точности после запятой
обязательного описателя преобразования
Флаги
Могут быть использованы следующие флаги:
-
=f
-
Символ =, за которым следует еще один символ,
задает символ заполнения. По умолчанию пробел.
-
^
-
Запрещает группировку символов (определяемую текущей локалью).
-
+ или (
-
Задает способ форматирования положительных и отрицательных
значений. При использовании + будут
использоваться аналоги символов + и
- из текущей локали. Если указана
(, отрицательные числа будут заключены в
скобки. По умолчанию +.
-
!
-
Подавляет вывод символа валюты.
-
-
-
Если этот флаг задан, поля будут выравнены влево, вместо
используемого по умолчанию выравнивания вправо.
Ширина поля
-
w
-
Строка из десятичных цифр, задающая минимальную ширину поля.
Поле будет выравнено вправо, если не указан флаг
-. Значение по умолчанию - 0 (ноль).
Точность до запятой
-
#n
-
Максимальное количество цифр (n),
которое ожидается до запятой. Это обычно используется при выводе
значений одно под другим, чтобы десятичные точки распологались в
одной колонке, при этом используется символ заполнения, если
число цифр меньше n. Если число цифр
больше n, этот параметр игнорируется.
Если группировка не была запрещена флагом ^,
разделители групп будут вставлены перед добавлением символов
заполнения. Разделители групп не вставляются между символами
заполнения, даже если заполнитель - цифра.
Для обеспечения выравнивания, все символы, выводимые до или
после числа, такие как сивол валюты или знак, будут дополнены
пробелами до одинаковой ширины.
Точность после запятой
-
.p
-
Точка, за которой следует число знаков, выводимых после запятой.
Если значение p рано нулю, десятичная
точка и цифры после нее не будут выводиться.
Если этот параметр отсутствует, число знаков после запятой
определяется текущей локалью. Перед форматированием число
округляется до указанного количества знаков.
Описатель преобразования
-
i
-
Используется международный денежный формат из текущей локали
(например, для американской локали: USD 1,234.56).
-
n
-
Используется национальный денежный формат из текущей локали
(например, для локали de_DE: DM1.234,56).
-
%
-
Вставляет символ %.
Замечание:
На работу этой функции влияет установка категории
LC_MONETARY текущей локали.
Перед использованием этой функции установите нужную локаль с помощью
setlocale().
Символы перед и после описания формата возвращаются без изменений.
Пример #1 Пример использования money_format()
Проиллюстрируем применение этой функции для различных локалей и
разных описаний формата.
<?php
$number = 1234.56;
// международный формат в локали en_US setlocale(LC_MONETARY, 'en_US'); echo money_format('%i', $number) . "\n"; // USD 1,234.56
// Итальянский национальный формат с 2 знаками после запятой setlocale(LC_MONETARY, 'it_IT'); echo money_format('%.2n', $number) . "\n"; // L. 1.234,56
// Использование отрицательных чисел $number = -1234.5672;
// национальный формат США, с использованием скобок для // отрицательных чисел и 10 знаков до запятой setlocale(LC_MONETARY, 'en_US'); echo money_format('%(#10n', $number) . "\n"; // ($ 1,234.57)
// подобно предыдущему, но с добавлением 2 знаков после запятой // и '*' в качестве символа заполнения echo money_format('%=*(#10.2n', $number) . "\n"; // ($********1,234.57) // Выравнивание влево, ширина 14 знаков, 8 знаков дозапятой, // 2 знака после запятой, без разбиения на группы // с использованием международного формата в локали de_DE. setlocale(LC_MONETARY, 'de_DE'); echo money_format('%=*^-14#8.2i', 1234.56) . "\n"; // DEM 1234,56****
// А теперь добавим текст перед и после описателя формата 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)
?>
См. также описание функций setlocale(),
number_format(),sprintf(),
printf() и sscanf().
|
|