JavaScript - Como convertir un string en int en una suma

   
Vista:

Como convertir un string en int en una suma

Publicado por NovataProgramadora (3 intervenciones) el 08/05/2016 02:36:31
Estimados, deseo crear un programa donde agregue un numero en el formulario, de click en el botón aceptar y sume la cifra anteriormente ingresada. Por ejemplo, si se ingresa primero el número 2, le doy aceptar y que aparece debajo el valor 2; luego insertar otro numero, por ejemplo, 3, darle aceptar, y que abajo aparezca 5, es decir el resultado de la suma de "2 + 3". El problema es que en el resultado aparece un string o cadena de texto, y lo que se busca es que sea numérica y se sume una y otra vez.

Agradezco encarecidamente su ayuda.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<script>
		var a=0;
 
		function sumar(){
		var b= document.querySelector("#efectivo").value;
		a=parseInt(a+=b);
		document.querySelector("#cambio").innerHTML=a;
		}
</script>
 
<body>
 
<header>Titulo de la página</header>
<nav>
	<ul>
    	<li><a>Inicio</a></li>
        <li><a>Productos</a></li>
        <li><a>Nosotros</a></li>
    </ul>
</nav>
 
<article>
<form>
 
    <input type="number" id="efectivo">Efectivo <br>
    <input type="button" onClick="sumar();" value="Aceptar">
 
</form>
 
</article>
 
<footer>
 
<p id="cambio"></p>
</footer>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Como convertir un string en int en una suma

Publicado por xve (1597 intervenciones) el 08/05/2016 08:52:22
Modifica la función sumar por esta:
1
2
3
4
5
function sumar(){
	var b= parseInt(document.querySelector("#efectivo").value);
	a+=b;
	document.querySelector("#cambio").innerHTML=a;
}

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como convertir un string en int en una suma

Publicado por NovataProgramadora (3 intervenciones) el 08/05/2016 19:57:06
Intentè esa opción ayer y no me funcionó. A ti te funciona? porque a mi igual me aparece el resultado una cadena.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Diego

Como convertir un string en int en una suma

Publicado por Juan Diego (37 intervenciones) el 10/05/2016 06:02:07
Buenas noches,

Tal como te lo indica xve, es una buena forma de solucionar tu inquietud; verifica que no tengas un error de sintaxis y coméntanos por favor.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como convertir un string en int en una suma

Publicado por NovataProgramadora (3 intervenciones) el 10/05/2016 17:07:39
Lo solucioné. Pero no es de la forma que ustedes indican. Es necesario transformar la variable b en entero o decimal despues de que es recibida mediante el método queryselector.

Hay dos maneras: una es colocando

parseInt(b)

Otra es multiplicar la variable b por 1

a+=(b*1)

También se puede convertir la variable b dentro de la suma

a+=parseFloat(b)

Ocurre que el html convierte la variable b en string, y debemos reconvertirlo mediante alguna de estas formas.

Gracias por el interés y preocupación :).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Juan Diego

Como convertir un string en int en una suma

Publicado por Juan Diego (37 intervenciones) el 10/05/2016 20:19:13
Hola,

Efectivamente, toda lectura proveniente de los elementos HTML, es dada en modo cadena, por lo que es necesaria la conversión por medio del método parse, por ello en la línea que comparte xve:

1
var b= parseInt(document.querySelector("#efectivo").value);

En ese momento, b es una variable númerica siempre y cuando la entrada sea correcta (es decir, no hay elementos diferentes de números).

Ahora bien, la formula que indicas "a+=(b*1)" también es correcta, a esto se le llama conversión implícita, es un proceso automática de JavaScript pero se desaconseja su uso, por buenas prácticas de desarrollo, es mejor realizar la conversión explícita.

Si dices que la primera línea no te funcionó, es muy raro, igualmente nos alegra hayas solucionado tu inquietud.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar