¿Estas atascado? ¡Yo te ayudo!, pregunta aquí.

Sumar en Javascript

Todo código relacionado exclusivamente con Javascript, como jquery, ajax, javascript en bruto, ...

Notapor alexiter » Vie Ago 15, 2014 8:54 am

Haciendo ejercicios de JavaScript me he vuelto a topar con un problema al sumar dos variables introducidas por el usuario.

El problema viene dado porque en JavaScript el símbolo de concatenar coincide con el de la suma “+” y al sumar dos variables que teclea el usuario en lugar de devolver la suma de sus valores concatena esos valores porque lo trata como dos strings. Esto no ocurre cuando sumas dos variables a las que les asignamos sus respectivos valores, ya que en ese caso si reconoce los números como tipo numérico.

Esto se resuelve utilizando parseInt() para números enteros o parseFloat() para números con decimales. Con esto se convierte a tipo numérico y resuelve la operación de la suma.

Ejemplo
Ejecutando este script vemos que concatena los valores que introducimos en lugar de sumarlos.

Código: Seleccionar todo
<script type="text/javascript">
 
var i = prompt("Teclea un numero entero");
var j = prompt("Teclea otro numero entero");
 
document.write("La suma de las variables i + j da: " + (i + j));
 
</script>


Aquí resolvemos correctamente la suma usando parseInt.

Código: Seleccionar todo
<script type="text/javascript">
 
var i = parseInt(prompt("Teclea un numero entero"));
var j = parseInt(prompt("Teclea otro numero entero"));
 
document.write("La suma de las variables i + j da: " + (i + j));
 
</script>


Utilizando parseInt si el usuario introduce decimales redondea y no lo calcula correctamente. Para evitar esto, en el ejemplo anterior usamos parseFloat en lugar de parseInt y resolverá correctamente con decimales la operación de la suma.
alexiter
Site Admin
 
Mensajes: 149
Registrado: Dom Nov 17, 2013 9:54 pm

Volver a Javascript (jquery, ajax, ...)

cron
  • Buscar mensajes nuevos
  • Buscar temas sin respuesta
  • ¿Quién está conectado?
  • En total hay 1 Usuario identificado :: 0 registrado, 0 ocultos y 1 invitado (basados en usuarios activos en los últimos 5 minutos)
  • La mayor cantidad de usuarios identificados fue 619 el Dom May 03, 2020 11:11 pm
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado