Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

142
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!