我一直在探索JavaScript,并致力于制作一个可以求解两个答案的二次方程的计算器。我一直遇到这样的问题:当我知道真正的答案时,公式有时会返回NaN。例如使用1表示b,-5表示a,-14表示c,返回"NaN,NaN“,但应为7,-2。这是有原因的,还是我的代码中有bug?提前感谢
function quadForm() {
var b = document.getElementById("oppb").value;
var a = document.getElementById("a").value;
var c = document.getElementById("c").value;
var ansplsunrd = (-1 * b + Math.sqrt(Math.pow(b, 2) - (4 * a * c))) / (2 * a);
var ansmnsunrd = (-1 * b - Math.sqrt(Math.pow(b, 2) - (4 * a * c))) / (2 * a);
document.getElementById("result").innerHTML = ansplsunrd + ", " + ansmnsunrd;
}<h2>Quadratic Calculator</h2>
<p class="var-1">b:</p><input type="number" class="calc-field" id="oppb" placeholder="Insert B" value="0">
<p class="var-2">a:</p><input type="number" class="calc-field" id="a" placeholder="Insert A" value="0">
<p class="var-3">c:</p><input type="number" class="calc-field" id="c" placeholder="Insert C" value="0"> <br> <br>
<button type="button" onClick="quadForm()">Calculate</button>
<p id="result">Result shown here</p>
发布于 2019-09-28 01:39:18
我想出了如何纠正错误,并通过为等式的每个部分添加变量来使代码看起来更整洁。我分离了使b相反的过程,2a的除法,以及b^2-4ac的幂。然后在代码片段中创建if/ else语句。感谢那些指出负判别式问题的人,这就是我来到这里的原因。为了准确起见,我只需要在答案中加上一个"i“。
function quadForm() {
var b = document.getElementById("oppb").value;
var a = document.getElementById("a").value;
var c = document.getElementById("c").value;
var discrim = Math.pow(b, 2) - (4 * a * c);
var divby = 2*a;
var oppb = -1*b;
if (discrim < 0) {
var negrt = (oppb + Math.sqrt((discrim*-1)))/(divby);
var posrt = (oppb - Math.sqrt((discrim*-1)))/(divby);
document.getElementById("result").innerHTML = negrt + "i" + ", " + posrt + "i";
} else {
var ansplsunrd = (-1 * b + Math.sqrt(Math.pow(b, 2) - (4 * a * c))) / (2 * a);
var ansmnsunrd = (-1 * b - Math.sqrt(Math.pow(b, 2) - (4 * a * c))) / (2 * a);
document.getElementById("result").innerHTML = ansplsunrd + ", " + ansmnsunrd;
}
}<h2>Quadratic Calculator</h2>
<p class="var-1">b:</p><input type="number" class="calc-field" id="oppb" placeholder="Insert B" value="1">
<p class="var-2">a:</p><input type="number" class="calc-field" id="a" placeholder="Insert A" value="-5">
<p class="var-3">c:</p><input type="number" class="calc-field" id="c" placeholder="Insert C" value="-14"> <br> <br>
<button type="button" onClick="quadForm()">Calculate</button>
<p id="result">Result shown here</p>
https://stackoverflow.com/questions/58138405
复制相似问题