Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
5
respuestas

Problemas con el ingreso de variables

Acabo de realizar un programa bastante simple para poder comprobar si entendí correctamente el uso del ingreso de valores mediante el uso de "prompt", el programa fue el siguiente:

<meta.charset="uft-8">
<script>

function promedio (a,b,c){
    document.write("el promedio de los valores es " + ((a + b + c)/3) + "<br>");
}

//main
    var n1 = prompt("ingrese un numero");
    var n2 = prompt("ingrese otro numero");
    var n3 = prompt("ingrese otro numero");
    document.write("<h1>Prueba de Funciones</h1> <br><br>A continuación se mostrará el promedio de los 3 números ingresados<br><br>");
    promedio(n1,n2,n3);    
//end

</script>

Sin embargo los números que ingreso se guardan como texto. Entre otras pruebas usando 1, 2 y 3 el resultado fue 41 (123/3) en vez de 2. Sé que el error está en como estoy utilizando el "prompt", ya que mediante la siguiente comprobación me aseguré de que no haya otras fallas:

 <meta.charset="uft-8">
<script>

function promedio (a,b,c){
    document.write("el promedio de los valores es " + ((a + b + c)/3) + "<br>");
}

//main
    var n1 = 1//prompt("ingrese un numero");
    var n2 = 2//prompt("ingrese otro numero");
    var n3 = 3//prompt("ingrese otro numero");
    document.write("<h1>Prueba de Funciones</h1> <br><br>A continuación se mostrará el promedio de los 3 números ingresados<br><br>");    
    promedio(n1,n2,n3);    
//end

</script>

Esta modificación da el resultado deseado, 2. Si sabe como corregir esto estaría agradecido si me pudieran decir como utilizar correctamente la instrucción "prompt".

5 respuestas

Buenas tardes compañero, es porque el prompt devuelve una cadena y no un numero, debes hacerle casting hacia un numero de la siguiente manera

var n1 = parseInt(prompt("Ingrese el valor"));

de esta forma ya se guardara el string como numero.

Este es el código después de la corrección:

<meta.charset="uft-8">
<script>

function promedio (a,b,c){
    document.write("el promedio de los valores es " + ((a + b + c)/3) + "<br>");
}

//main
    var n1 = parseint(prompt("ingrese un numero"));
    var n2 = parseint(prompt("ingrese otro numero"));
    var n3 = parseint(prompt("ingrese otro numero"));
    document.write("<h1>Prueba de Funciones</h1> <br><br>A continuación se mostrará el promedio de los 3 números ingresados<br><br>");
    promedio(n1,n2,n3);
//end

</script>

Pero acaba de surgir un nuevo inconveniente, cuando intento ejecutarlo da como error "Uncaught ReferenceError: parseint is not defined at funciones.html:8". ¿Tengo que llamar a alguna librería en específico para poder usar esta instrucción?

solución!

Compañero porque parseint no es la función que le nombre, recuerde que más mayúsculas son muy importantes y en este caso es parseInt con la i en mayuscula

Mil gracias

Muchas gracias Jhon por la aclaración a mi me sirvió mucho también.