2017-12-12 28 views
0

最近私はJavascriptの学習を始めました。ユーザー入力番号のセットを計算するスクリプトを作成しようとしています。私は、ユーザーにプロンプ​​トを与え、ユーザーからの価値を得るための関数を使用します。次に、私はプロンプト入力を受け取り、それを自分の値に加えるために別の関数を使います。しかし、結果は常に一連の連続した値です。私のコードは次のものです、助けてください。演算子 '+'は加算の代わりに常に値を連結します

<body> 
    <p> 
     Click below to calculate a value. 
    </p> 

    <button onclick='myfunc()'>Calculate</button> 

    <p id='demo'></p> 

    <script type='text/javascript'> 
     function getvalue() { 
           var foo = prompt('Enter a number'); 
           return(foo); 
          } 
     function myfunc() { 

          var a = getvalue(); 
          var x = a + 2; 
          document.getElementById("demo").innerHTML = x; 
          } 
    </script> 
</body> 

+0

'return Number(foo)' –

+4

'prompt'は文字列を返します。たとえば、 '' 1 '+ 2'は '' 12 "'となります。番号に変換する必要があります。 –

+0

あなたのケースの 'getValue'は' String'を返すと思います – Nemani

答えて

0

利用のparseInt()
https://www.w3schools.com/jsref/jsref_parseint.asp

あなたの機能の中で使うこともできるし、以下のように外部で使うこともできます。

function getvalue() { 
          var foo = prompt('Enter a number'); 
          parseInt(foo); //Parse string to integer 
         } 

OR

function myfunc() { 

         var a = parseInt(getvalue()); //Parse string to integer 
         var x = a + 2; 
         document.getElementById("demo").innerHTML = x; 
         } 


いけないあなたのプログラムにプロンプ​​ト出力の(それは整数だことを確認する)検証を行うことを忘れて!

0

promptからのすべての入力には、文字列として扱われます。 var型を数値に指定する必要があります(int型またはdecimal型のdouble型またはfloat型の整数)。値を解析するには、parseInt、parseDouble、parseFloatを使用してください。

倍精度と浮動小数点の差は小数点以下の桁違いです。

function getvalue() { 
 
     var foo = prompt('Enter a number'); 
 
     return parseInt(foo); // also try parseDouble for decimal values 
 
    } 
 

 
function myfunc() { 
 
    var a = getvalue(); 
 
    var x = a + 2; 
 
    document.getElementById("demo").innerHTML = x; 
 
}
<button onclick="myfunc()">Test</button> 
 
<br/> 
 
<p> 
 
The Value is: <span id="demo"></span> 
 
</p>

+0

ありがとう、私のコードは今完璧に実行されます! – Sushruth

0

あなたは+オペレータとの数にあなたの文字列を変換することができます

function getvalue() { 
    //  v Here is where the magic is taking place  
    var foo = +prompt('Enter a number'); 
    return(foo); 
} 
function myfunc() { 
    var a = getvalue(); 
    var x = a + 2; 
    document.getElementById("demo").innerHTML = x; 
} 
関連する問題