Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

Ayuda con un promedio por favor

Amigos, hice una variación del ejercicio de la "media de las edades" para obtener un promedio De esta manera, puedo ingresar notas y me devuelve el promedio de las notas Por ejemplo: N° de notas = 2 Nota 1 = 6 Nota 2 = 5 Promedio = 5.5

El problema es que no me funciona ingresando números decimales He intentado con punto (5.5) y con coma (5,5) y nada Da como resultado siempre un entero, sin considerar las décimas Al sumarlos, tampoco considera los decimales

Ayuda por favor, es para mi hija

Les dejo mi código

<h1>PROMEDIO </h1>

<script>

    function saltarLinea() {
        document.write("<br>");    

    }  

    function imprimir(frase) {
        document.write(frase);
        saltarLinea();
    }


    var q = parseInt(prompt("Ingrese número de notas"));
    var contador = 1;
    var total = 0;

    while (contador <= q) {

        elemento = parseInt(prompt("Ingrese nota " + contador));
        total = total + elemento;
        contador++;

    }

    promedio = total/q;

    imprimir("La suma es " + total);
    imprimir("El promedio es " + promedio);

</script>
2 respuestas

Hola Nixon. Primero tendrias que asegurarte que las varibles estan declaradas como numeros. Segundo, para trabajar con decimales tendrias que declarar las variables como "parseFloat()" , para esteros seria "parseInt()". Un ultimo detalle es que javascript cuando multiplicas trata de convertir automaticamente las variables a numericas pero no asi cuando haces sumas ya que las concatena como texto. Y para saber que tipo de variable esta declarando lo podes hacer con la propiedad typeof. Te dejo un ejemplo para que lo puedas probar Espero te sirva. Saludos.

<script>
      const x = parseFloat(prompt("ingresa la nota"));
      //imprimir en pantalla el tipo de dato
      document.write(typeof x);
      //imprimir en consola
      console.log(typeof x);
</script>

PD: puse const porque la variable no cambia, si queres declarar una variable que cambie podes usar var o let.

PD 2: no me habia cargado tu codigo cuando respondi. Donde declaras la variable "elemento" como parseInt() tenes que poner parseFloat.

También tenía esa duda cuando realizamos ese ejercicio, pero te muestro como pude imprimir con decimales y solo con 2 decimales específicamente, ya que salían más.

<script>

    var numeroNotas = parseInt(prompt("Ingrese el número de notas"));
    var contador = 1;
    var totalNotas = 0;

    while (contador <= numeroNotas) {

        notas = parseFloat(prompt("Ingrese las notas"));
        totalNotas = totalNotas + notas;
        contador++;

    }

    var mediaNotas = totalNotas / numeroNotas;
    var mediaNotasDecimal = mediaNotas.toFixed(2);

    imprimir("Media de Notas: " + mediaNotasDecimal);

</script>

Espero que te ayude y siendo sincero, pienso que puede mejorarse el código. Saludos.