Sé que la sintaxis de Math.floor es un número, por lo que puede poner un número dentro de la declaración como argumento o tener un número muy igual, pero en mi caso tengo una variable de calificación que se agrega a otra variable llamada "total". y luego el promedio de las calificaciones ingresadas es igual al total dividido por la cantidad de calificaciones ingresadas.
Aquí está mi código.
var grade = 0; var avg = 0; var count = 0; var total = 0; do { grade = prompt('Enter grade(-1 to stop)'); while (!grade || grade < -1 || grade > 100 || isNaN(grade)) { grade = prompt('Enter grade again (-1 to stop)'); } if (grade == -1) { break } count++; document.write('<td>Grade ' + count + '</td>'); document.write('<td width="50"> ' + grade + ' </td>'); document.write('</tr>'); total += Number(grade); } while (grade != -1) document.write('</table>'); if(count > 0) { avg = total / count; } //Math.floor would go here instead of document.write. document.write('Semester Average: ' + avg + '<br /><br />');Sé que no puede usar la variable promedio dentro de Math.floor, pero tiene que haber otra forma de tener el dwon promedio redondeado si no es un número entero.
Simplemente puede usar Math.floor (o round) en el var antes de escribirlo.
const rounded = Math.round(avg)
En la mayoría de los casos, el uso de document.write() no es una buena opción, ya que hace que el documento quede sin terminar. Esta es mi versión del script que siempre le brindará una descripción general válida de las calificaciones, incluso antes de que haya terminado de recopilar todas las calificaciones.
function tr(i, g) { // creates and returns a TR DOM element const el = document.createElement("tr"); el.innerHTML = `<td>${i}.</td><td>${g}</td>`; return el; } const tb = document.querySelector("#mytbl tbody"), tf = document.querySelector("#mytbl tfoot th:nth-child(2)"), gr = document.querySelector("#grade"); gr.focus(); // position cursor on input field document.querySelector("form").addEventListener("submit", function(ev) { ev.preventDefault(); const n = tb.children.length + 1; // calculate curent count tb.append(tr(n, gr.value)); gr.value = ""; // empty the input field again tf.textContent = ([...tb.querySelectorAll("td:nth-child(2)")] .reduce((a, c) => +c.textContent + a, 0) / n).toFixed(1) // calculate average and round to 1 digit }); td, tfoot th:nth-child(2) {text-align:right} <form><input type="text" id="grade" placeholder="Please enter a grade ..."></form> <table id="mytbl"> <thead> <tr> <th>no.</th> <th>grade</th> </tr> </thead> <tbody></tbody> <tfoot> <tr> <th>avg.:</th> <th></th> </tr> </tfoot> </table>