Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

134
Vistas
Ecuación de fórmula cuadrática de JavaScript que produce NaN

Estoy haciendo una calculadora de fórmula cuadrática. No hay errores, pero cuando lo ejecuto devuelve NaN. No entiendo porque.

 function quadratic(a, b, c) { a = document.getElementById("a").value; b = document.getElementById("b").value; c = document.getElementById("c").value; var equation = Math.sqrt((b * b) - ( 4 * a * c)); var quadraticPos =(-b + equation) / (2 * a); var quadraticNeg = (-b - equation) / (2 * a); if (isNaN(a) || isNaN(b) || isNaN(c)) { alert("Invalid Input"); } else { document.getElementById("quadraticOut").innerHTML = "Quadratic Equation = " + quadraticPos.toFixed(2) + "<br/>" + quadraticNeg.toFixed(2); } }
 input { width: 20px }
 <input id="a" placeholder="a"/> <input id="b" placeholder="b"/> <input id="c" placeholder="c"/> <button onclick="quadratic()">compute</button> <div id="quadraticOut">result…</div>

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

  1. La verificación de entrada debe venir antes del cálculo real.

  2. a , b y c son cadenas por defecto, no números, cuando provienen de los campos de entrada a través .value . Deben convertirse a Number() antes de usarse en el cálculo. O bien, podrías multiplicar por un número, pero eso es un truco. Si b*b multiplica dos cadenas, el producto será un número debido a la coerción de tipo, pero esto no es sólido y no debe confiar en rarezas de JavaScript como esta para que su cálculo funcione.

  3. Math.sqrt() devuelve NaN si el resultado es un número negativo, que es muy probable que se obtenga aquí con valores de entrada aleatorios.

  4. Su <br/> en el HTML interno causará un error, debe poner comillas alrededor.

  5. En 2021, sería mejor usar let y/o const para limitar el alcance de la variable, en lugar de la var global.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda