Provided by: manpages-ru-dev_4.27.0-1_all bug

НАИМЕНОВАНИЕ

       strfmon, strfmon_l - преобразует денежное значение в строку

БИБЛИОТЕКА

       Стандартная библиотека языка C (libc, -lc)

ОБЗОР

       #include <monetary.h>

       ssize_t strfmon(char s[restrict .max], size_t max,
                       const char *restrict format, ...);
       ssize_t strfmon_l(char s[restrict .max], size_t max, locale_t locale,
                       const char *restrict format, ...);

ОПИСАНИЕ

       Функция  strfmon()  преобразует  заданные  денежные  суммы  в  соответствии с текущей локалью и указанным
       форматом format и помещает результат в символьный массив s размера max.

       Функция strfmon_l() производит то же действие, но  используется  локаль,  заданная  в  locale.  Поведение
       strfmon_l()  не  определёно,  если  значение  locale  равно  специальному объекту локали LC_GLOBAL_LOCALE
       (смотрите duplocale(3)) или описатель объекта локали не корректен.

       Ordinary characters in format are copied to s without conversion.  Conversion specifiers  are  introduced
       by a '%' character.  Immediately following it there can be zero or more of the following flags:

       =f     Однобайтовый  символ  f  используется  в  качестве числового символа-заполнителя (для выравнивания
              слева, смотрите ниже). Если символ не указан, то используется символ пробела.

       ^      Не использовать  группирующие  символы,  которые  могут  быть  определены  в  текущей  локали.  По
              умолчанию, разделение на группы разрядов разрешено.

       ( или +
              Флаг  (  указывает на то, что отрицательные суммы должны быть заключены в скобки. Флаг + указывает
              на то, что наличие знака у суммы должно обрабатываться стандартным способом, то  есть  зависит  от
              локали,  например  может быть так, что в результате ничего не указывается для положительных сумм и
              «-» для отрицательных.

       !      Пропустить текущий символ.

       -      Выровнять все поля по левому краю. По умолчанию выравнивание по правому краю.

       Далее может быть указана ширина поля: строка с десятичным числом, определяющая минимальную ширину поля  в
       байтах.  По  умолчанию  0. Если результат меньше чем эта ширина, то он дополняется пробелами (слева, если
       установлен флаг выравнивания по левому краю).

       Далее может быть указана ширина целой части числа: символ «#», за которым  следует  строка  с  десятичным
       числом.  Если  количество  цифр  слева  от  символа  разделителя  меньше,  чем  ширина  целой  части,  то
       предоставление дополняется слева числовым символом-заполнителем. Группирующие символы не учитываются  при
       подсчете этой ширины поля.

       Далее  может  быть  указана точность десятичной части: символ «.», за которым следует строка с десятичным
       числом. Перед форматированием сумма будет округлена до указанного числа знаков.  По  умолчанию,  точность
       задаётся  в  элементах frac_digits и int_frac_digits текущей локали. Если десятичная точность равна 0, то
       разделитель целой и дробной части не печатается (символ-разделитель определяется переменной LC_MONETARY и
       может отличаться от символа определенного в переменной LC_NUMERIC).

       И, наконец, определение  преобразования  может  заканчиваться  символом  преобразования.  Существует  три
       символа преобразования:

       %      (In  this case, the entire specification must be exactly "%%".)  Put a '%' character in the result
              string.

       i      Аргумент типа double преобразуется с использованием локального интернационального формата валюты.

       n      Аргумент типа double преобразуется с использованием локального национального формата валюты.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

       При успешном выполнении функция strfmon() возвращает количество символов,  помещённых  в  массив  s,  без
       учёта  конечного  байта null, предоставляя строку, включающую конечный байт null. Иначе она устанавливает
       errno в значение E2BIG, возвращает -1, а содержимое массива не определено.

АТРИБУТЫ

       Описание терминов данного раздела смотрите в attributes(7).
       ┌───────────────────────────────────────────────────────────────┬──────────────────────┬────────────────┐
       │ ИнтерфейсАтрибутЗначение       │
       ├───────────────────────────────────────────────────────────────┼──────────────────────┼────────────────┤
       │ strfmon()                                                     │ Безвредность в нитях │ MT-Safe locale │
       ├───────────────────────────────────────────────────────────────┼──────────────────────┼────────────────┤
       │ strfmon_l()                                                   │ Безвредность в нитях │ MT-Safe        │
       └───────────────────────────────────────────────────────────────┴──────────────────────┴────────────────┘

СТАНДАРТЫ

       POSIX.1-2008.

ИСТОРИЯ

       POSIX.1-2001.

ПРИМЕРЫ

       Вызов

           strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]",
                   1234.567, 1234.567);

       результат

           [€ **1234,57] [EUR **1 234,57]

       с локалью nl_NL. С локалями de_DE, de_CH, en_AU и en_GB:

           [ **1234,57 €] [ **1.234,57 EUR]
           [ Fr. **1234.57] [ CHF **1'234.57]
           [ $**1234.57] [ AUD**1,234.57]
           [ £**1234.57] [ GBP**1,234.57]

СМОТРИТЕ ТАКЖЕ

       duplocale(3), setlocale(3), sprintf(3), locale(7)

ПЕРЕВОД

       Русский перевод этой страницы руководства разработал(и)  Alexander  Golubev  <fatzer2@gmail.com>,  Azamat
       Hackimov   <azamat.hackimov@gmail.com>,   Hotellook,   Nikita   <zxcvbnm3230@mail.ru>,  Spiros  Georgaras
       <sng@hellug.gr>, Vladislav <ivladislavefimov@gmail.com>, Yuri Kozlov  <yuray@komyakino.ru>,  Иван  Павлов
       <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот  перевод является свободной программной документацией; он распространяется на условиях общедоступной
       лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html  версии  3  или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если  вы  обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом
       разработчику(ам)  по  его(их)  адресу(ам)  электронной  почты  или  по   адресу   списка рассылки русских
       переводчиков.

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                       strfmon(3)