Форматирование денежных значений

Функция money_f ormat [) может использоваться для форматирования числовых значений в денежном выражении для данного регионального стандарта. Функция принимает два параметра:
money_format (Sformat, Snumber)
Параметр Snumber содержит числовое значение с плавающей точкой, которое должно быть форматировано, а параметр Sformat — строку, задающую правила форматирования, которым должна следовать функция money_f ormat [), Строка формата содержит следующие элементы:• Символ %.
• Один или более флагов опций.
• Необязательное значение ширины поля.
• Необязательный идентификатор выравнивания.
• Необязательное целое значение точности.
• Необязательную точку и десятичную точность.
• Символ конверсии.
Таким образом, самая простая форматная строка состоит из символа % и символа конверсии, который задает способ форматирования Snumber в соответствии с информацией из табл. 1.6.
Таблица 1.6. Спецификаторы money_format П
Опция Значение
% Печатать символ процента.
п Форматировать денежное значение в соответствии с локальными
национальными установками.
i Форматировать денежное значение в соответствии с локальными
интернацно н а л ьн ымн уставе в кам и.
Разница между национальным и интернациональным денежными форматами существенна в зависимости от аудитории пользователей ваших программ. Например, рассмотрим следующий сценарий:

5а = 1232322210.44; setlocale (LC_MONETARY, ‘en_US’); echo money_format (”%n”, Sa) ; echo “\n”;
echo money_format Sa) ;
echo “\n”;

После его выполнения будет напечатан следующий результат:
$1,232,322,210.44 USD 1,232,322,210.44
Как вы можете видеть, первая директива (с национальными установками) форматирует денежное значение так, как его написал бы человек, обычно использующий эти установки. С другой стороны, вторая директива форматирует значение, используя метод, принятый в интернациональной среде. Если вы находитесь в США, то понятно, что под $10 вы понимаете “десять долларов США”, а то время как для канадцев это может означать “10 канадских долларов”. Как известно, это две очень разные интерпретации. Таким образом, если вы ориентируетесь на интернациональную аудиторию, то, возможно, будете использовать спецификатор ‘i \ который даст на выходе универсально опознаваемую строку “USD”.

Tags: , ,

Related posts


Leave a Reply