allowDecimalPadding

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


Основная задача механизма padding дробной части

Форматирование чисел в AutoNumeric строится вокруг нормализации значения к заданным правилам отображения:

  • количество знаков после запятой (decimalPlaces)
  • символ десятичного разделителя (decimalCharacter)
  • правила округления (roundingMethod)
  • управление отображением дробной части (allowDecimalPadding)

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


Режимы работы allowDecimalPadding

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

true — фиксированная длина дробной части

При значении true дробная часть всегда приводится к длине, заданной через decimalPlaces.

Поведение:

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

Пример конфигурации:

new AutoNumeric(element, {
    decimalPlaces: 2,
    allowDecimalPadding: true
});

Примеры преобразования:

Входное значение Отображение
12 12.00
12.5 12.50
12.567 12.57

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


false — отключение дополнения нулями

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

Поведение:

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

Пример конфигурации:

new AutoNumeric(element, {
    decimalPlaces: 4,
    allowDecimalPadding: false
});

Примеры преобразования:

Входное значение Отображение
12 12
12.5 12.5
12.5000 12.5

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


“floats” — динамическое поведение дробной части

Режим "floats" представляет промежуточную стратегию между строгим фиксированием и полной свободой отображения.

Особенности:

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

Пример конфигурации:

new AutoNumeric(element, {
    decimalPlaces: 3,
    allowDecimalPadding: "floats"
});

Типичные результаты:

Входное значение Отображение
12 12
12.5 12.5
12.500 12.5
12.340 12.34

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


Взаимодействие с decimalPlaces

Параметр decimalPlaces задаёт максимальную или фиксированную точность дробной части, но его поведение напрямую зависит от allowDecimalPadding.

При allowDecimalPadding = true

  • decimalPlaces становится жёстким форматом отображения
  • число всегда имеет одинаковое количество знаков после запятой

При allowDecimalPadding = false

  • decimalPlaces ограничивает точность, но не навязывает формат вывода
  • отображение может быть короче заданного значения

При allowDecimalPadding = “floats”

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

Влияние на пользовательский ввод

При работе с полями ввода AutoNumeric применяет форматирование динамически, и allowDecimalPadding влияет не только на отображение, но и на реакцию на ввод:

  • при включённом padding вводимое значение может мгновенно дополняться нулями
  • при отключённом padding пользовательский ввод остаётся «чистым» до момента потери фокуса или форматирования
  • режим "floats" минимизирует визуальные изменения во время ввода

Особенно заметна разница при вводе значений без дробной части:

  • true → мгновенное преобразование в формат с нулями
  • false → сохранение исходного вида
  • "floats" → гибкая нормализация только при необходимости

Влияние на методы форматирования и парсинга

AutoNumeric предоставляет API-методы, такие как set(), getNumericString(), getFormatted(). Поведение allowDecimalPadding отражается в результатах getFormatted():

  • getFormatted() возвращает строку с учётом padding-правил
  • getNumericString() игнорирует визуальное форматирование и возвращает числовое значение

Таким образом:

  • allowDecimalPadding влияет исключительно на представление
  • внутреннее числовое значение остаётся неизменным

Сочетание с округлением

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

  • сначала выполняется округление до decimalPlaces
  • затем применяется логика allowDecimalPadding

Пример:

new AutoNumeric(element, {
    decimalPlaces: 2,
    roundingMethod: "halfUp",
    allowDecimalPadding: true
});

Результаты:

Вход Округление Итог
1.234 1.23 1.23
1 1.00

При отключённом padding тот же результат выглядел бы как 1.


Поведение при изменении конфигурации на лету

AutoNumeric позволяет динамически обновлять параметры через методы обновления опций. Изменение allowDecimalPadding приводит к мгновенному перерасчёту отображения текущего значения.

Пример сценария:

autoNumericInstance.update({
    allowDecimalPadding: false
});

Последствия:

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

Типичные сценарии применения

Различные режимы allowDecimalPadding используются в зависимости от требований интерфейса:

  • финансовые системы — фиксированная точность, строгий формат (true)
  • аналитические панели — компактное отображение (false)
  • гибридные интерфейсы с переменной точностью — "floats"

Влияние на UX и восприятие данных

Разница между режимами становится особенно заметной при массовом отображении чисел:

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

Форматирование через allowDecimalPadding становится инструментом не только технической настройки, но и управления визуальной структурой числовых интерфейсов.