metaphone
nl_langinfo
Функции обработки строк
PHP Manual

# money_format

(PHP 4 >= 4.3.0, PHP 5)

money_format — Форматирует число как денежную величину

### Описание

string money_format ( string `$format` , float `$number` )

money_format() форматирует число `number` как денежную величину. Эта функция вызывает функцию strfmon языка C, но позволяет преобразовать только одно число за один вызов.

> Замечание: Функция 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().

metaphone
nl_langinfo
Функции обработки строк
PHP Manual