Метод getNumericString

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


Синтаксис

anElement.getNumericString();
  • anElement – экземпляр AutoNumeric, привязанный к конкретному HTML-элементу <input> или <textarea>.
  • Возвращаемое значение – строка, содержащая числовое значение без разделителей тысяч, валютных символов, процентов или других форматирующих элементов.

Основные особенности

  1. Строгое числовое представление Метод возвращает число как строку в стандартной форме, включая знак - для отрицательных значений, и точку . в качестве десятичного разделителя, если это предусмотрено настройками. Например:

    const anElement = new AutoNumeric('#price', { decimalCharacter: '.', digitGroupSeparator: ',' });
    anElement.set('1,234.56');
    console.log(anElement.getNumericString()); // '1234.56'
  2. Совместимость с настройками AutoNumeric Метод корректно учитывает все пользовательские настройки:

    • decimalPlaces – количество десятичных знаков.
    • decimalCharacter – символ для десятичного разделителя.
    • negativeSignCharacter – символ отрицательного знака.
    • currencySymbol и suffixText – игнорируются в возвращаемой строке.
  3. Поддержка отрицательных и положительных чисел Возвращаемое значение сохраняет знак числа. В случае положительного числа строка возвращается без знака +, а отрицательные значения имеют знак -.

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


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

Пример 1: Получение чистого числа из валютного поля

const anElement = new AutoNumeric('#salary', {
  currencySymbol: '$',
  decimalCharacter: '.',
  digitGroupSeparator: ',',
  decimalPlaces: 2
});

anElement.set('$12,345.67');
const numericString = anElement.getNumericString();
console.log(numericString); // '12345.67'

Пример 2: Работа с отрицательными значениями

const anElement = new AutoNumeric('#debt', { negativeSignCharacter: '-' });
anElement.set('-1,200.50');
console.log(anElement.getNumericString()); // '-1200.50'

Пример 3: Поле с процентами

const anElement = new AutoNumeric('#interest', {
  suffixText: '%',
  decimalPlaces: 2
});

anElement.set('12.34%');
console.log(anElement.getNumericString()); // '12.34'

Отличие от метода getNumber()

  • getNumber() возвращает числовое значение типа Number.
  • getNumericString() возвращает строку с точным числовым представлением, что позволяет избежать потери точности при больших числах или при работе с деньгами, где важны все десятичные знаки.

Пример разницы:

anElement.set('12345678901234567890.12');
console.log(anElement.getNumber());        // 1.2345678901234568e+19
console.log(anElement.getNumericString()); // '12345678901234567890.12'

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

  • Передача данных на сервер: использование getNumericString() гарантирует, что сервер получит точное числовое значение без символов форматирования.
  • Математические вычисления и финансовые операции: исключается риск округления или неправильного преобразования при работе с типом Number.
  • Сохранение больших чисел: строковое представление позволяет безопасно хранить и передавать числа, превышающие точность JavaScript для типа Number.

Рекомендации по использованию

  • Использовать метод в случаях, когда требуется точное числовое значение в виде строки.
  • Для отображения на клиенте продолжать использовать форматирование AutoNumeric (getFormatted()), чтобы сохранить удобочитаемый вид для пользователя.
  • Проверять настройки десятичного разделителя и знака числа, особенно при международных приложениях, чтобы избежать ошибок при передаче данных.

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