Мне пришлось выбирать между преобразованиями parseFloat () и Number (), прежде чем я смог сделать вызов toFixed ().Вот пример форматирования чисел после захвата пользовательского ввода.
HTML:
<input type="number" class="dec-number" min="0" step="0.01" />
Обработчик события:
$('.dec-number').on('change', function () {
const value = $(this).val();
$(this).val(value.toFixed(2));
});
Приведенный выше код приведет к исключению TypeError,Обратите внимание, что хотя тип ввода html - «число», пользовательский ввод - это тип данных «строка».Однако функция toFixed () может быть вызвана только для объекта, который является Number.
Мой окончательный код будет выглядеть следующим образом:
$('.dec-number').on('change', function () {
const value = Number($(this).val());
$(this).val(value.toFixed(2));
});
Причина, по которой я предпочитаю выполнять приведение с Number () против parseFloat () потому, что мне не нужно выполнять дополнительную проверку ни для пустой входной строки, ни для значения NaN.Функция Number () автоматически обработает пустую строку и преобразует ее в ноль.