2

基本的な足し算、引き算、掛け算、割り算の式は、コンソールに入力するか、変数に設定できます。

var solve = (3 + 7) + 2 * 8 / 2 // 18

そして正しく解決されました。

私のコードはこれを行っていません。テキストエリアと関係があると思います。(3 + 7) + 2 * 8 / 2 と入力すると、(18 ではなく) (3 + 7) + 2 * 8 / 2 と表示されます。私のコードには解決ボタンがないことに注意してください。問題が入力されると解決します。

フィドル: http://jsfiddle.net/kt4SL/

HTML

<textarea cols="50" rows="10" id="pSolve"></textarea>
<div id="answer"></div>

JavaScript

var input = document.getElementById("pSolve");

input.onkeyup = function() {
    // Solve the input
    finalAnswer = pSolve.value;

    // Display answer
    answer.innerHTML = finalAnswer;
}

私はこれを試しました:

// Solve the input
finalAnswer = Number(pSolve.value);

修正されると思ったが、うまくいかなかった。代わりに何も表示されませんでした。私は何が欠けているか、間違っていますか?

4

4 に答える 4

3

eval方程式を評価するために使用するだけです。

answer.innerHTML = eval(finalAnswer);

あなたのjsFiddleを更新しました


この回答もご覧ください。質問は数式の解析に関するものでしたが、実際にはほとんど何にでも使用できます。

于 2013-09-07T22:24:15.660 に答える
1

テキスト領域から文字列を抽出し、回答の div に貼り付けるだけです。文字列は JavaScript によって評価されるだけではありません。あなたが実際にやっていることはvar solve = '(3 + 7) + 2 * 8 / 2';この SO postのように、実際にその問題を解決するにはパーサーが必要です。

于 2013-09-07T22:12:27.370 に答える