2016-05-13 11 views
2

私はJava Scriptの新しい学習者です。私は数学の方程式に問題があります。それは間違った答えを示している。 私は間違いを見つけるのを手伝ってください。Javaスクリプトの数式が間違った答えを示す

<html> 
 
    <head> 
 
\t <title>calculation of (p+r)*(n+r) </title> 
 

 
     <script> 
 
      function calculate() 
 
      { 
 
       var p = document.getElementById("p").value; 
 
       var n = document.getElementById("n").value; 
 
       var r = document.getElementById("r").value; 
 
       
 
\t \t \t  
 
       var calculationa= p+r; 
 
\t \t \t  
 
\t \t \t var calculationb= n+r; 
 
\t \t \t 
 
\t \t \t  
 
\t \t \t var cal_final=Number(calculationa)*Number(calculationb); 
 
\t \t \t  
 
\t \t \t document.getElementById("result").innerHTML=cal_final; 
 
      } 
 
     </script> 
 
    </head> 
 

 
    <body> 
 
     <h1>calculation of (p+r)*(n+r)</h1> 
 
     p: <input id="p"><br/> 
 
     n: <input id="n"><br/> 
 
     r: <input id="r"><br/> 
 

 
     
 

 
     <button onclick="calculate()">calculate</button> 
 
\t <p id="result"></p> 
 
    </body> 
 
</html>

それは私が解決したい式です。 数値が正しくないこの結果を示しています。 http://i.stack.imgur.com/Ir9hs.png

どうすればこの問題を解決できますか?

+0

ヒントを使用します。すべての '.value'sは文字列であり、場合でも、彼らは数字のように見えます。 – georg

+0

'+' 'p'の前に' Number''に変換します 'var calculationa = + p + r; var calculationb = + n + r; ' - この2行を更新してください! –

+0

[JavaScriptでは追加機能が動作しません](http://stackoverflow.com/questions/8377410/addition-is-not-working-in-javascript) –

答えて

2

詳細についてはこれを確認してください値は文字列としてpnrに割り当てられています。したがって、p+r = 1+2 = 12

parseInt()を使用して値を整数として解析し、計算します。またはparseFloat()

function calculate() { 
 
    var p = parseInt(document.getElementById("p").value); 
 
    var n = parseInt(document.getElementById("n").value); 
 
    var r = parseInt(document.getElementById("r").value); 
 

 
    var calculationa= p+r; 
 

 
    var calculationb= n+r; 
 

 
    var cal_final=Number(calculationa)*Number(calculationb); 
 

 
    document.getElementById("result").innerHTML=cal_final; 
 
}
<h1>calculation of (p+r)*(n+r)</h1> 
 
    p: <input id="p"><br/> 
 
    n: <input id="n"><br/> 
 
    r: <input id="r"><br/> 
 

 
    <button onclick="calculate()">calculate</button> 
 
    <p id="result"></p>
また

+0

ありがとうございます。私は今日何か新しいことを学ぶ。 –

0

JavaScriptのvar値を文字列とみなしています。

整数値の加算の場合parseInt()

浮動小数点値の加算に使用parseFloat()

http://www.tutorialspoint.com/java/java_numbers.htm

function calculate() 
{ 
    var p = document.getElementById("p").value; 
    var n = document.getElementById("n").value; 
    var r = document.getElementById("r").value; 


    var calculationa= parseInt(p)+parseInt(r); 

    var calculationb= parseInt(n)+parseInt(r); 


    var cal_final=parseInt(calculationa)*parseInt(calculationb); 

    document.getElementById("result").innerHTML=cal_final; 
} 
1

これを試すことができます.....

function calculate() 
 
      {    
 

 
    var p= Number(document.getElementsByName("p")[0].value); 
 
    var n= Number(document.getElementsByName("n")[0].value); 
 
    var r= Number(document.getElementsByName("r")[0].value); 
 
    var sum1 = p+ r; 
 
    var sum2 = n+ r; 
 
    var res=sum1 *sum2; 
 

 
    document.getElementsByName("result1")[0].value = res; 
 
         
 
      }
<h1>calculation of (p+r)*(n+r)</h1> 
 
     p: <input type="text" name="p"><br/> 
 
     n: <input type="text" name="n"><br/> 
 
     r: <input type="text" name="r"><br/> 
 
     <br/> 
 
<input type="button" name="add" value ="add" onClick="calculate()" /> 
 
result: <input type="text" name="result1"><br/>

関連する問題