Tuve que decidir entre las conversiones parseFloat () y Number () antes de poder hacer la llamada a toFixed (). Aquí hay un ejemplo de un número que formatea la entrada del usuario después de la captura.
HTML:
<input type="number" class="dec-number" min="0" step="0.01" />
Controlador de eventos:
$('.dec-number').on('change', function () {
const value = $(this).val();
$(this).val(value.toFixed(2));
});
El código anterior dará como resultado la excepción TypeError. Tenga en cuenta que aunque el tipo de entrada html es "número", la entrada del usuario es en realidad un tipo de datos de "cadena". Sin embargo, la función toFixed () solo se puede invocar en un objeto que es un Número.
Mi código final se vería de la siguiente manera:
$('.dec-number').on('change', function () {
const value = Number($(this).val());
$(this).val(value.toFixed(2));
});
La razón por la que prefiero emitir con Number () vs. parseFloat () es porque no tengo que realizar una validación adicional ni para una cadena de entrada vacía, ni para el valor NaN. La función Number () manejaría automáticamente una cadena vacía y la convertiría a cero.