我需要在javascript中總結幾個值。我嘗試過使用以下代碼Javascript總和值
var a = 2;
var b = 5;
c = a+b;
但是,不是計算a和b的值,而是輸出(c)只合並這兩個值。所以給出的輸出是:
c = 25
我相信你們可以幫我輕鬆解決這個問題。 Thx之前。注意安達。
我需要在javascript中總結幾個值。我嘗試過使用以下代碼Javascript總和值
var a = 2;
var b = 5;
c = a+b;
但是,不是計算a和b的值,而是輸出(c)只合並這兩個值。所以給出的輸出是:
c = 25
我相信你們可以幫我輕鬆解決這個問題。 Thx之前。注意安達。
您的代碼正在添加(連接)字符串。你確定你發佈的代碼代表你的問題嗎?你寫的東西應該可以工作。一定要在實際的代碼你不是說:
var a = '2'; // or something similar
或者,如果值從某處解析,請務必在做加法,10爲基數之前,呼籲他們parseInt(a, 10)
。
或正如在評論中指出的Number
函數可能會適合您的目的。
是的。我不使用任何價值的報價。我也已經通過使用parseInt(a)和parseInt(b)將它們轉換爲int。我做對了嗎? – Andha
以及它取決於。 'parseInt(a)'不改變'a'變量,它返回解析的int。所以你可能需要'a = parseInt(a)'或'c = parseInt(a)+ parseInt(b)' – numbers1311407
確保在'parseInt()'的調用中使用'radix'參數。 – JAAulde
這工作得很好:
var a = 2;
var b = 5;
var c = a + b; // c is now 7
您顯示的代碼不會按照您描述的方式工作。這將導致7
。
但是,當試圖執行加法操作時,如果其中一個或兩個數字值實際上是數字字符串,則其他值將被轉換爲字符串,並且它們將被連接。
當嘗試讀取表單值,讀取cookie或某種其他類型的HTTP標頭時,這很可能發生。要將字符串轉換爲數字,您需要使用parseInt()
[docs]。仔細閱讀文檔和務必注意並提供第二個參數(radix
)以確保從字符串到數字的轉換使用您期望的基數。 (在其他的答案radix
缺乏信息是主要的原因我繼續貼出哪怕別人已經提到parseInt()
一個答案。)
此外,僅供參考,另一個方便的功能,具有未知值的交易時使用並希望進行數學運算的是isNaN()
[docs]。
作者可能會把「簡化」的代碼,所以我們可以得到一個想法。有同樣的問題,同時獲得輸入值。 JS將其解釋爲字符串。使用 「號()」 解決了這個問題:
var sum = Number(document.getElementById("b4_f2_"+i).value) + Number(document.getElementById("b4_f3_"+i).value) + Number(document.getElementById("b4_f4_"+i).value);
使用parseInt()
:
var a=2;
var b=5;
c=parseInt(a)+parseInt(b);
在這裏發帖之前,測試你的代碼。這個版本實際上有效:P – hugomg
不要忘記使用parseInt,parseInt(a,10) – sciritai
@sciritai指定基數 - 的確如此! – JAAulde