Другие распространенные валюты

Поддержка международных валютных представлений

Библиотека AutoNumeric ориентирована на унификацию и стандартизацию отображения числовых значений с учётом локальных денежных форматов. При работе с различными валютами ключевым становится не только отображение символа валюты, но и корректная настройка разрядности, разделителей, положения символа и допустимых диапазонов значений.

Каждая валюта характеризуется набором параметров:

  • символ валюты;
  • позиция символа относительно числа;
  • разделитель целой и дробной части;
  • группировка разрядов;
  • количество знаков после запятой;
  • правила округления;
  • допустимые диапазоны значений.

AutoNumeric предоставляет набор конфигурационных опций, позволяющих точно воспроизвести поведение практически любой валюты мира без необходимости ручной обработки строк.


Базовые параметры конфигурации валют

Ключевые настройки, используемые при описании валютного формата:

  • currencySymbol — символ валюты;
  • currencySymbolPlacement — расположение символа ("p" — префикс, "s" — суффикс);
  • decimalCharacter — символ десятичного разделителя;
  • digitGroupSeparator — разделитель тысячных групп;
  • decimalPlaces — фиксированное количество знаков после запятой;
  • minimumValue / maximumValue — ограничения диапазона значений;
  • roundingMethod — метод округления;
  • allowDecimalPadding — дополнение нулями до заданной точности.

Комбинация этих параметров позволяет формировать поведение, соответствующее финансовым стандартам разных стран.


Британский фунт (GBP)

Формат британского фунта отличается использованием символа £, расположенного перед числом, и стандартной двухзначной дробной частью.

AutoNumeric.multiple('.gbp', {
  currencySymbol: '£',
  currencySymbolPlacement: 'p',
  digitGroupSeparator: ',',
  decimalCharacter: '.',
  decimalPlaces: 2,
  roundingMethod: 'S'
});

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


Швейцарский франк (CHF)

Швейцарский франк характеризуется отсутствием строгого разделения тысяч в некоторых локализациях, однако в цифровых интерфейсах чаще используется европейский стиль.

AutoNumeric.multiple('.chf', {
  currencySymbol: 'CHF',
  currencySymbolPlacement: 'p',
  digitGroupSeparator: "'",
  decimalCharacter: '.',
  decimalPlaces: 2
});

Применение апострофа в качестве разделителя разрядов отражает традиционный формат Швейцарии.


Канадский доллар (CAD)

Канадский доллар использует долларовый символ с обязательной локализацией через запятую или точку в зависимости от региона (английская и французская Канада).

AutoNumeric.multiple('.cad', {
  currencySymbol: 'CA$',
  currencySymbolPlacement: 'p',
  digitGroupSeparator: ',',
  decimalCharacter: '.',
  decimalPlaces: 2
});

Отдельный префикс CA$ используется для исключения путаницы с USD.


Австралийский доллар (AUD)

Австралийская валюта следует стандартному доллар-формату, но с региональной спецификацией символа.

AutoNumeric.multiple('.aud', {
  currencySymbol: 'A$',
  currencySymbolPlacement: 'p',
  digitGroupSeparator: ',',
  decimalCharacter: '.',
  decimalPlaces: 2
});

Использование префикса A$ критично для корректной идентификации валюты в международных интерфейсах.


Китайский юань (CNY)

Китайский юань в цифровых системах часто отображается символом ¥, однако в международной среде используется код CNY для устранения неоднозначности с японской иеной.

AutoNumeric.multiple('.cny', {
  currencySymbol: '¥',
  currencySymbolPlacement: 'p',
  digitGroupSeparator: ',',
  decimalCharacter: '.',
  decimalPlaces: 2
});

В финансовых приложениях Китая часто применяется фиксированная двухзнаковая дробная часть, несмотря на редкое использование дробей в наличных расчётах.


Индийская рупия (INR)

Индийская рупия отличается уникальной системой группировки разрядов, отличной от международной.

AutoNumeric.multiple('.inr', {
  currencySymbol: '₹',
  currencySymbolPlacement: 'p',
  digitGroupSeparator: ',',
  decimalCharacter: '.',
  decimalPlaces: 2
});

Особенность заключается не в символе, а в системе группировки: первые три цифры отделяются от правой части, далее разряды идут по две цифры.

Для имитации индийского формата требуется кастомная логика группировки, поскольку стандартная конфигурация AutoNumeric ориентирована на западный стиль.


Бразильский реал (BRL)

Бразильский реал использует запятую в качестве десятичного разделителя и точку для группировки тысяч.

AutoNumeric.multiple('.brl', {
  currencySymbol: 'R$',
  currencySymbolPlacement: 'p',
  digitGroupSeparator: '.',
  decimalCharacter: ',',
  decimalPlaces: 2
});

Такой формат является зеркальным по отношению к англоязычному стандарту, что важно учитывать при обработке пользовательского ввода.


Турецкая лира (TRY)

Турецкая лира отличается частым использованием локализованных форматов в финансовых интерфейсах, где символ может располагаться как слева, так и справа.

AutoNumeric.multiple('.try', {
  currencySymbol: '₺',
  currencySymbolPlacement: 'p',
  digitGroupSeparator: '.',
  decimalCharacter: ',',
  decimalPlaces: 2
});

Использование запятой в качестве десятичного разделителя соответствует европейской традиции, принятой в Турции.


Южноафриканский рэнд (ZAR)

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

AutoNumeric.multiple('.zar', {
  currencySymbol: 'R',
  currencySymbolPlacement: 'p',
  digitGroupSeparator: ',',
  decimalCharacter: '.',
  decimalPlaces: 2
});

Формат максимально близок к долларовым системам, что упрощает интеграцию в международные платформы.


Южнокорейская вона (KRW)

Вона отличается отсутствием дробной части в большинстве пользовательских сценариев.

AutoNumeric.multiple('.krw', {
  currencySymbol: '₩',
  currencySymbolPlacement: 'p',
  digitGroupSeparator: ',',
  decimalCharacter: '.',
  decimalPlaces: 0
});

Ключевая особенность — округление до целых значений, что отражает практику внутреннего ценообразования.


Мексиканское песо (MXN)

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

AutoNumeric.multiple('.mxn', {
  currencySymbol: 'MX$',
  currencySymbolPlacement: 'p',
  digitGroupSeparator: ',',
  decimalCharacter: '.',
  decimalPlaces: 2
});

Региональный префикс предотвращает конфликт с USD в международных системах.


Настройка гибридных валютных форматов

В реальных приложениях часто требуется комбинирование нескольких валютных правил, особенно в финансовых панелях, мультивалютных кошельках и системах расчётов.

Пример универсальной конфигурации:

const baseCurrencyConfig = {
  digitGroupSeparator: ',',
  decimalCharacter: '.',
  decimalPlaces: 2,
  roundingMethod: 'S',
  allowDecimalPadding: true
};

Далее параметры расширяются под конкретную валюту:

AutoNumeric.multiple('.eur', {
  ...baseCurrencyConfig,
  currencySymbol: '€',
  currencySymbolPlacement: 's'
});

AutoNumeric.multiple('.usd', {
  ...baseCurrencyConfig,
  currencySymbol: '$',
  currencySymbolPlacement: 'p'
});

Такой подход позволяет централизовать логику форматирования и снизить количество дублируемого кода.


Работа с предустановленными профилями

AutoNumeric предоставляет набор предопределённых конфигураций, упрощающих настройку стандартных валютных форматов.

Использование предустановок:

const anElement = new AutoNumeric('#input', AutoNumeric.getPredefinedOptions().euro);

Или расширение:

const customEuro = {
  ...AutoNumeric.getPredefinedOptions().euro,
  currencySymbolPlacement: 's'
};

Предустановленные профили обеспечивают согласованность форматов в рамках различных проектов.


Управление точностью и округлением

Для валютных операций критично корректное поведение при округлении:

  • банковское округление;
  • округление вверх;
  • округление вниз;
  • математическое округление.
AutoNumeric.multiple('.finance', {
  decimalPlaces: 2,
  roundingMethod: 'S'
});

При работе с валютами, имеющими нулевую дробную часть, точность явно фиксируется:

AutoNumeric.multiple('.integer-currency', {
  decimalPlaces: 0,
  roundingMethod: 'S'
});

Обработка пользовательского ввода

Валютные поля требуют строгой фильтрации вводимых символов. AutoNumeric автоматически:

  • удаляет недопустимые символы;
  • нормализует разделители;
  • корректирует формат в реальном времени;
  • поддерживает вставку из буфера обмена.

Пример инициализации с ограничениями:

AutoNumeric.multiple('.secure-currency', {
  minimumValue: '0',
  maximumValue: '1000000000',
  decimalPlaces: 2
});

Такая конфигурация особенно полезна в финансовых интерфейсах с лимитами транзакций.


Согласование валютных форматов в мультиинтерфейсах

В сложных системах, где одновременно используются десятки валют, применяется единая стратегия:

  • базовый формат чисел;
  • переопределение символов валют;
  • локализованные разделители;
  • централизованное управление конфигурациями;
  • единая система округления.

Это позволяет поддерживать консистентность отображения данных независимо от региона и валюты, снижая вероятность ошибок интерпретации финансовых значений.