[英]How to add two values in javascript
這是一個帶有值的簡單下拉列表。 我試圖將值作為貨幣拉出然后添加。
這些值沒有被添加( 1+1=2
或1+2=3
),而是連接( 1+1=11
或1+2=12
)。 我在哪里錯了?:
<script>
function displayResult()
{
var strm=document.getElementById("matt").options[document.getElementById("matt").selectedIndex];
var t=strm.text.search("\\\$");
var strb=document.getElementById("box").options[document.getElementById("box").selectedIndex];
var b=strb.text.search("\\\$");
var x=strm.text.substr(t+1);
var y=strb.text.substr(b+1);
var math= x + y;
alert(strm.text.substr(t+1));
alert(strb.text.substr(b+1));
alert(math);
}
</script>
<form>
Select #1:
<select id="matt">
<option>$1.00</option>
<option>$2.00</option>
</select>
<br />
Select #2:
<select id="box">
<option>$3.00</option>
<option>$4.00</option>
</select>
</form>
<button type="button" onclick="displayResult()">Display index</button>
使用parseInt()
將字符串轉換為整數。
var math= parseInt(x,10) + parseInt(y,10);
請參閱https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/parseInt
要確保將您的值添加為數字,請先將它們轉換為Number
:
Number('2') + Number('2') = 4
'2' + '2' = '22'
嘗試使用parseFloat()或parseInt()..否則它將不會將其識別為數字..它將作為普通字符串追加..
var math= parseFloat(x) + parseFloat(y);
alert(math)
檢查FIDDLE
這些值被解釋為字符串,您需要在添加它們之前使用parseInt將它們轉換為int。
substring()
函數返回給定字符串的子字符串,當然,這是一個字符串,而不是可以在其上執行數學運算的對象。 如果使用parseInt()
將這些字符串解析為數字,那么它將起作用:
var x= parseInt(strm.text.substr(t+1),10);
var y= parseInt(strb.text.substr(b+1),10);
此外,您不需要繼續重新聲明var
,而是可以使用逗號分隔的變量聲明:
var x = parseInt(strm.text.substr(t+1),10),
y = parseInt(strb.text.substr(b+1),10);
我今天發現了一些有趣的事 我在theodinproject上做了計算器項目。 我有加法,減法,乘法和除法函數。 減法,乘法和除法工作正常,無需明確告訴javascript將參數視為數字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.