簡體   English   中英

如何在javascript中添加兩個值

[英]How to add two values in javascript

這是一個帶有值的簡單下拉列表。 我試圖將值作為貨幣拉出然后添加。

這些值沒有被添加( 1+1=21+2=3 ),而是連接( 1+1=111+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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM