2016-11-16 9 views
0

JavaScrptの学習を開始し、数式を計算するためのコードを作成しようとしましたが、期待通りに機能しません。ここに私が取り組んでいるコードがあります。 BのA 3に2を、Bの2〜4 * A * Cの式でCの4を入力すると、コードは-23を返しますが-31を返します。もっと経験豊富な人が見て、私のミスはどこにあるのか教えてください。JavaScriptが正しく計算されない

<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() { 
 
\t function presmqtane(A,B,C) { 
 
\t \t A = parseFloat(A); 
 
\t \t B = parseFloat(B); 
 
\t \t C = parseFloat(C); 
 
\t return (B^2 - 4 * A * C); 
 
\t } 
 

 
\t var reshenie = document.getElementById("reshenie"); 
 
\t if (reshenie) { 
 
\t \t reshenie.onsubmit = function() { 
 
\t \t \t this.result.value = presmqtane(this.A.value, this.B.value, this.C.value); 
 
\t \t \t return false; 
 
\t \t }; 
 
\t } 
 

 
    }()); 
 

 
    </script> 
 

 
</body> 
 
</html>

+3

'^'はべき乗ではありません。 – ASDFGerte

+1

指数には 'Math.pow()'があります:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/pow – David

答えて

3

はStackOverflowのへようこそ! ^シンボルがXORオペレータ、ない累乗である

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

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

あなたはこのことを意味:私はあなたがこれを書いたとき推測しています。そのためのシンボルはありません。ただMath.pow()です。

また、Javascriptの変数名は通常小文字で書かれています。私はA,B,Cの代わりにa,bc(これは伝統的にオブジェクトではなくクラスを表す)を使用します。これはまた、大文字の文字が行列やグラフなどの数値よりも複雑なオブジェクトを表す数学的な標準(私はそれが二次閉方式であると仮定しています)と一緒に演奏します。

+1

累乗の記号があります来るECMAScriptバージョンでは '**'となります。 – Xufox

1

あなたが望むように、これは動作するはずです:

return (Math.pow(B, 2) - 4 * A * C); 
関連する問題