我刚开始学习JavaScrpt,并尝试编写代码来计算数学公式,但它并没有像我预期的那样工作。这是我正在处理的代码。当我运行代码时,如果我在B中的A 3和C中的4中用公式B ^ 2 - 4 * A * C输入2,它应该返回-23但它返回-31。更有经验的人可以看看并告诉我我的错误在哪里吗?
<html>
<head>
</head>
<body>
<form id="reshenie" action="">
<fieldset>
<p>
<label for="A">a</label>
<input id="A" name="A" type="number" />
</p>
<p>
<label for="B">b</label>
<input id="B" name="B" type="number" />
</p>
<p>
<label for="C">c</label>
<input id="C" name="C" type="number" />
</p>
<p>
<input type="submit" value="submit" />
<input type="reset" value="reset" />
</p>
<p>
<label for="result">result</label>
<input id="result" name="result" type="number" />
</p>
</fieldset>
</form>
<script>
(function () {
function presmqtane(A,B,C) {
A = parseFloat(A);
B = parseFloat(B);
C = parseFloat(C);
return (B^2 - 4 * A * C);
}
var reshenie = document.getElementById("reshenie");
if (reshenie) {
reshenie.onsubmit = function () {
this.result.value = presmqtane(this.A.value, this.B.value, this.C.value);
return false;
};
}
}());
</script>
</body>
</html>
&#13;
答案 0 :(得分:3)
欢迎使用StackOverflow!我猜你写这篇文章的时候:
return (B^2 - 4 * A * C);
你的意思是:
return (Math.pow(B, 2) - 4 * A * C);
^
符号是XOR
运算符,而不是取幂。没有符号,只有Math.pow()
。
另请注意,Javascript中的变量名称通常是小写的。我会使用a
,b
,c
代替A
,B
,C
(传统上代表类,而不是对象)。这也与数学标准(我假设是二次闭方程)一起使用,其中大写字母通常表示比数字更复杂的对象,如矩阵或图形。
答案 1 :(得分:1)
这应该可以按你的意愿运作:
return (Math.pow(B, 2) - 4 * A * C);