JavaScript无法正确计算

时间:2016-11-16 18:21:45

标签: javascript

我刚开始学习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;
&#13;
&#13;

2 个答案:

答案 0 :(得分:3)

欢迎使用StackOverflow!我猜你写这篇文章的时候:

return (B^2 - 4 * A * C);

你的意思是:

return (Math.pow(B, 2) - 4 * A * C);

^符号是XOR运算符,而不是取幂。没有符号,只有Math.pow()

另请注意,Javascript中的变量名称通常是小写的。我会使用abc代替ABC(传统上代表类,而不是对象)。这也与数学标准(我假设是二次闭方程)一起使用,其中大写字母通常表示比数字更复杂的对象,如矩阵或图形。

答案 1 :(得分:1)

这应该可以按你的意愿运作:

return (Math.pow(B, 2) - 4 * A * C);