¿Como convertir un string a int en Javascript?

publicado por: Anonymous

Tengo un pequeño inconveniente con el siguiente código.

 var cantidad = $tds.eq(2).find("#cant").val();
 total_bultos = parseInt(cantidad) + total_bultos;   
 document.getElementById("total_bultos").value = total_bultos;

Al intentar sumar los caracteres ingresados en unos campos de texto y hacer la conversión de string a int siempre me arroja el famoso NaN al utilizar parseInt() en la conversión de la variable. El resultado debe ser una suma de enteros, no una suma de caracteres.

Si pueden detectar el problema se los agradezco.

solución

en principio la solución seria convertir a entero las variables intervinientes mediante parseInt()pero primero deberías ver si estas trayendo realmente un numero puede que estés trayendo cualquier cosa validaría los valores mediante la funcion isNaN()

Una mejor aproximación seria

let cantidad = $tds.eq(2).find("#cant").val();
if (!isNaN(cantidad)) {
    total_bultos = !isNaN(total_bultos) ? parseInt(total_bultos, 10) : 0; //si es una cadena vacia o cualquier cosa que no sea numero total = 0
    total_bultos = parseInt(cantidad, 10) + parseInt(total_bultos, 10);  
    document.getElementById("total_bultos").value = total_bultos;
} else {
    console.error('Error, cantidad no valida');
}

Asigno 0 a total_bultos por defecto si no es un valor numerico, porque puede ocurrir que el parametro no este inicializado, sino puedes quitar esta comprobacion`:

total_bultos = !isNaN(total_bultos) ? parseInt(total_bultos, 10) : 0;

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *