Количество десятичных знаков

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

Настройка параметра decimalPlaces

Параметр decimalPlaces определяет точное количество цифр после десятичного разделителя. Его значение может быть целым числом, обозначающим фиксированное количество знаков:

new AutoNumeric('#input1', 1234.5678, {
    decimalPlaces: 2
});

В этом примере число 1234.5678 будет отображено как 1,234.57. AutoNumeric автоматически округляет исходное значение до указанного количества десятичных знаков.

Особенности работы:

  • Округление производится по стандартным правилам математического округления.
  • Если исходное число содержит меньше десятичных знаков, чем указано в decimalPlaces, библиотека добавит нули до необходимого количества.
  • Если decimalPlaces не указан, используется значение по умолчанию, равное 2.

Динамическое управление количеством знаков

AutoNumeric позволяет менять количество десятичных знаков после инициализации поля. Для этого используются методы экземпляра:

const anElement = new AutoNumeric('#input2', 1000.5, { decimalPlaces: 2 });

// Изменение количества десятичных знаков на лету
anElement.update({ decimalPlaces: 4 });
// Текущее значение: 1000.5000

Метод update принимает объект с параметрами конфигурации, позволяя гибко изменять отображение чисел без повторной инициализации элемента.

Минимальное и максимальное количество десятичных знаков

Для более сложных сценариев можно использовать decimalPlacesShownOnFocus и decimalPlacesShownOnBlur, которые позволяют отображать разные количества знаков в зависимости от состояния поля:

new AutoNumeric('#input3', 123.4, {
    decimalPlaces: 2,
    decimalPlacesShownOnFocus: 4
});
  • decimalPlaces – количество знаков при потере фокуса.
  • decimalPlacesShownOnFocus – количество знаков при активном поле ввода. В приведенном примере значение 123.4 будет отображено как 123.4000 при фокусе и 123.40 при потере фокуса.

Режимы округления и их влияние

AutoNumeric поддерживает разные стратегии округления, которые напрямую влияют на отображение десятичных знаков. Параметр roundingMethod может принимать значения:

  • 'S' – стандартное округление (по математическим правилам),
  • 'A' – округление в большую сторону (always up),
  • 'B' – округление в меньшую сторону (always down),
  • 'C' – банковское округление (bankers rounding).

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

new AutoNumeric('#input4', 2.555, {
    decimalPlaces: 2,
    roundingMethod: 'B'
});
// Результат: 2.55

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

Маски и совместимость с разделителями

При настройке десятичных знаков важно учитывать совместимость с другими параметрами форматирования, такими как digitGroupSeparator и decimalCharacter. Например:

new AutoNumeric('#input5', 12345.678, {
    decimalPlaces: 3,
    decimalCharacter: ',',
    digitGroupSeparator: '.'
});
// Отображается как: 12.345,678
  • decimalCharacter определяет символ для десятичного разделителя.
  • digitGroupSeparator задает разделитель тысяч. AutoNumeric корректно округляет и добавляет нули независимо от выбранных символов разделителей.

Проверка и получение текущего количества десятичных знаков

Для получения значения с учётом текущей конфигурации используют методы getNumericString и getNumber:

const an = new AutoNumeric('#input6', 45.6, { decimalPlaces: 3 });

an.getNumericString(); // "45.600"
an.getNumber();        // 45.6

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

Практические рекомендации

  • Использовать фиксированное количество десятичных знаков для финансовых полей, чтобы избежать визуальной неоднородности.
  • Для полей, где важна точность на этапе ввода, применять decimalPlacesShownOnFocus.
  • Комбинировать с методами округления для соответствия стандартам бухгалтерского учёта или специфики предметной области.
  • Проверять совместимость с локальными настройками разделителей и символов валюты.

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