Документация для разработчиков

GetCurrencyFormat

array
CCurrencyLang::GetCurrencyFormat(
 string currency, 
 string lang = LANGUAGE_ID
);

Метод возвращает массив языкозависимых параметров валюты currency для языка lang.

Метод аналогичен методу CCurrencyLang::GetByID, за исключение того, что возвращаемый результат в методе CCurrencyLang::GetCurrencyFormat кешируется. Поэтому повторный вызов метода с теми же кодами валюты и языка в рамках одной страницы не приводит к дополнительному запросу к базе данных. Нестатический метод.

Параметры метода

Параметр Описание
currency Код валюты, языкозависимые параметры которой нужны.
lang Код языка. Необязательный параметр.

Возвращаемые значения

Ассоциативный массив с ключами:

Ключ Описание
CURRENCY Код валюты (трехсимвольный)
LID Код языка.
FORMAT_STRING Строка формата, в соответствии с которой выводится суммы в этой валюте на этом языке.
FULL_NAME Полное название валюты.
DEC_POINT Символ, являющийся десятичной точкой при выводе сумм.
THOUSANDS_SEP Разделитель тысяч при выводе.
DECIMALS Количество знаков после запятой при выводе.
HIDE_ZERO (Y|N) Определяет скрывать или показывать незначащие нули в дробной части (результат будет виден только в публичной части).

Пример использования

<?
function MyFormatCurrency($fSum, $strCurrency)
{
    if (!isset($fSum) || strlen($fSum)<=0)
        return "";

    $arCurFormat = CCurrencyLang::GetCurrencyFormat($strCurrency);

    if (!isset($arCurFormat["DECIMALS"]))
        $arCurFormat["DECIMALS"] = 2;

    $arCurFormat["DECIMALS"] = IntVal($arCurFormat["DECIMALS"]);

    if (!isset($arCurFormat["DEC_POINT"]))
        $arCurFormat["DEC_POINT"] = ".";

    if (!isset($arCurFormat["THOUSANDS_SEP"]))
        $arCurFormat["THOUSANDS_SEP"] = "\\"."xA0";

    $tmpTHOUSANDS_SEP = $arCurFormat["THOUSANDS_SEP"];
    eval("\$tmpTHOUSANDS_SEP = \"$tmpTHOUSANDS_SEP\";");
    $arCurFormat["THOUSANDS_SEP"] = $tmpTHOUSANDS_SEP;

    if (!isset($arCurFormat["FORMAT_STRING"]))
        $arCurFormat["FORMAT_STRING"] = "#";

    $num = number_format($fSum,
                         $arCurFormat["DECIMALS"],
                         $arCurFormat["DEC_POINT"],
                         $arCurFormat["THOUSANDS_SEP"]);

    return str_replace("#",
                       $num,
                       $arCurFormat["FORMAT_STRING"]);
}

echo "Сумма 11800.95 руб на текущем языке будет выглядеть так: ";
echo MyFormatCurrency(11800.95, "RUR");
?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
© «Битрикс», 2001-2019, «1С-Битрикс», 2019
Наверх