首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript有时只返回一个答案

JavaScript有时只返回一个答案
EN

Stack Overflow用户
提问于 2019-09-28 00:32:05
回答 1查看 38关注 0票数 0

我一直在探索JavaScript,并致力于制作一个可以求解两个答案的二次方程的计算器。我一直遇到这样的问题:当我知道真正的答案时,公式有时会返回NaN。例如使用1表示b,-5表示a,-14表示c,返回"NaN,NaN“,但应为7,-2。这是有原因的,还是我的代码中有bug?提前感谢

代码语言:javascript
复制
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;
}
代码语言:javascript
复制
<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>

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-28 01:39:18

我想出了如何纠正错误,并通过为等式的每个部分添加变量来使代码看起来更整洁。我分离了使b相反的过程,2a的除法,以及b^2-4ac的幂。然后在代码片段中创建if/ else语句。感谢那些指出负判别式问题的人,这就是我来到这里的原因。为了准确起见,我只需要在答案中加上一个"i“。

代码语言:javascript
复制
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;
}
}
代码语言:javascript
复制
<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>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58138405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档