decimalPlaces в библиотеке AutoNumeric определяет
количество знаков после десятичного разделителя, которые будут
отображаться в отформатированном значении поля ввода и/или строки
вывода. Параметр влияет исключительно на форматирование представления
числа, не изменяя его математическую сущность при корректной работе с
«сырыми» значениями.
Основная функция заключается в фиксации точности отображения чисел, обеспечивая единообразие ввода и вывода в финансовых, инженерных и аналитических интерфейсах.
При создании экземпляра AutoNumeric параметр
decimalPlaces задаётся в объекте конфигурации:
new AutoNumeric(domElement, {
decimalPlaces: 2
});
При этом библиотека выполняет следующие операции:
roundingMethod.Если исходное значение содержит больше знаков после запятой, чем
указано в decimalPlaces, происходит усечение или
округление.
Параметр decimalPlaces тесно связан с настройкой
roundingMethod, которая определяет стратегию обработки
лишних знаков:
S — симметричное округление;A — округление вверх;s, a, n, B —
различные режимы приближения к нулю или от него.Пример:
new AutoNumeric(element, {
decimalPlaces: 2,
roundingMethod: 'S'
});
Поведение:
| Входное значение | Результат |
|---|---|
| 10.126 | 10.13 |
| 10.124 | 10.12 |
Важно, что округление происходит не только при вводе, но и при программной установке значения через методы API.
При активном редактировании поля decimalPlaces влияет
на:
Если пользователь вводит значение с превышением допустимой точности,
лишние символы либо блокируются, либо корректируются в реальном времени
в зависимости от конфигурации modifyValueOnWheel,
watchExternalChanges и режима обработки событий.
Хотя decimalPlaces не определяет символ дробного
разделителя, он тесно связан с параметрами локализации:
decimalCharacterdigitGroupSeparatorПример:
new AutoNumeric(element, {
decimalPlaces: 3,
decimalCharacter: ',',
digitGroupSeparator: ' '
});
При таком наборе настроек число:
1234.5
будет отображено как:
1 234,500
Даже если пользователь вводит 1 234,5, библиотека
автоматически доводит значение до требуемой точности.
При инициализации или сбросе значения возможны следующие сценарии:
null или undefined приводят к установке
значения по умолчанию;emptyInputBehavior поведение может
изменяться.decimalPlaces в этих случаях определяет только
форматирование, которое будет применено при первом числовом вводе.
decimalPlaces после инициализацииБиблиотека позволяет динамически менять параметры через API:
const an = new AutoNumeric(element, {
decimalPlaces: 2
});
an.update({
decimalPlaces: 4
});
После обновления:
decimalPlaces влияет только на форматированный вывод,
тогда как внутреннее представление числа хранится отдельно.
Пример:
an.set(10.12987);
При настройке:
decimalPlaces: 2
Отображение:
10.13
Но «сырое» значение:
10.12987
Можно получить через:
an.getNumber();
Таким образом:
decimalPlaces → UI-форматdecimalPlacesRawValueВ конфигурации существует связанный параметр:
decimalPlacesRawValueОн управляет точностью значения, возвращаемого через API.
Сравнение:
| Параметр | Назначение |
|---|---|
decimalPlaces |
отображение |
decimalPlacesRawValue |
возврат значения |
Пример конфигурации:
new AutoNumeric(element, {
decimalPlaces: 2,
decimalPlacesRawValue: 6
});
Результат:
10.1310.129870При использовании decimalPlaces следует учитывать ряд
особенностей внутреннего механизма:
Number.Увеличение decimalPlaces приводит к дополнительным
вычислениям:
input;Особенно заметно это при:
При работе с несколькими экземплярами важно учитывать, что изменение
decimalPlaces может требовать синхронизации:
an1.update({ decimalPlaces: 2 });
an2.update({ decimalPlaces: 2 });
Если этого не сделать, возможны расхождения в отображении одинаковых чисел в разных полях.
В локалях, где принято фиксированное количество знаков после запятой
(например, финансовые системы), decimalPlaces часто
используется как жёсткое ограничение отображения.
При этом:
Хотя decimalPlaces не выполняет валидацию в строгом
смысле, он фактически задаёт допустимую точность отображения, что влияет
на:
При этом несоответствие между decimalPlaces и серверной
точностью часто становится источником расхождений в финансовых
расчётах.