2011-08-13 23 views
1

javascriptでいくつかの値を合計する必要があります。私は次のコードを使用して試しましたJavaScriptの合計値

しかし、aとbの値を計算する代わりに、出力(c)はこれらの2つの値を組み合わせるだけです。したがって、与えられた出力は:

c = 25 

私はあなたがこれについて簡単に助けることができると信じています。 Thx before。 Andardhaに敬意を表します。

+3

はここに投稿する前にあなたのコードをテスト使用 "番号を()" 問題を解決しました。このバージョンは実際に動作します:P – hugomg

+1

parseInt、parseInt(a、10) – sciritai

+0

@sciritaiを使って基数を指定するのを忘れないでください! – JAAulde

答えて

7

あなたのコードは文字列を追加(連結)しています。投稿したコードがあなたの問題を表していると確信していますか?あなたが書いたものはうまくいくはずです。

var a = '2'; // or something similar 

または値がどこかから解析されている場合は、追加を行う前に、それらにparseInt(a, 10)を呼び出してください、10を基数いる:あなたは言っていない実際のコードで確認してください。

コメントに指摘されているように、Numberの機能がおそらくあなたの目的に合っています。

+0

ええ。私は値の引用符を使用しません。私はすでにparseInt(a)とparseInt(b)を使ってintに変換しています。私はそれを正しくやっていますか? – Andha

+3

それはまあそれに依存します。 'parseInt(a)'は 'a'変数を変更しません。解析されたintを返します。したがって、 'a = parseInt(a)'または 'c = parseInt(a)+ parseInt(b)'が必要な場合があります。 – numbers1311407

+1

'parseInt()'の呼び出しで 'radix'パラメータを使用してください。 – JAAulde

2

これは正常に動作します:

var a = 2; 
var b = 5; 
var c = a + b; // c is now 7 
5

をそれ以外の場合は、sumingのではなく、CONCATなり、値が数字であることを確認してください。

a = parseInt(a, 10); // a is now int 
+0

thx for this bro。それは今働いている。 – Andha

+2

'parseInt()'の呼び出しで 'radix'パラメータを使用してください。 – JAAulde

+0

良い点。 – kjetilh

1

表示されたコードは、あなたが記述したとおりに動作しません。結果は7となります。

ただし、加算を実行しようとすると、一方または両方の数値が実際に数値文字列である場合、他の値は文字列にキャストされ、連結されます。

これは、フォーム値の読み取り、Cookieの読み込み、またはその他の種類のHTTPヘッダーを試行するときに発生する可能性が最も高いです。文字列を数値に変換するには、parseInt() [docs]を使用する必要があります。ドキュメントとを読んで、2番目のパラメータ(radixに注意して、文字列から数値へのキャストが期待するベースを使用していることを確認してください。

をまた、FYI、未知の値を扱うときに使用する別の便利な機能を(他の回答でradix上の情報の欠如は、私が先に行って、他の人がすでにparseInt()を言及していたにもかかわらず、その答えを掲載した。第一の理由です)数学的演算を行うことを望むのはisNaN() [docs]です。

+1

更新情報は何ですか?非常に役立ちます。 – Andha

+0

http://www.javascripttoolbox.com/bestpractices/#onclickは次のことを行うことができると述べています:X =(+ "2")+(+ "b5") - – Mike

3

私たちはアイデアを得るために、おそらく "単純化された"コードを書いているでしょう。入力値を取得している間、同じ問題がありました。 JSは文字列として解釈しました。

var sum = Number(document.getElementById("b4_f2_"+i).value) + Number(document.getElementById("b4_f3_"+i).value) + Number(document.getElementById("b4_f4_"+i).value); 
-2

使用parseInt()

var a=2; 
var b=5; 
c=parseInt(a)+parseInt(b);