2017-07-29 254 views
2

我在做一個NodeJs項目。我面對這個problem.Subtraction工作正常,但除了創造該問題.................加法在ExpressJs中無法正常工作,減法工作正常

var previous_stock=results[0]['remain_stock']; //suppose value is 123 
    var products_qty=request.body.products_qty; //suppose valut is 7 

    var update_data={ 
     remain_stock:previous_stock-products_qty, //output is 116 
    } 
    var update_data2={ 
     remain_stock:previous_stock+products_qty, //output is 1237 
    } 

如何解決這個問題?

+0

在兩個變量上使用parseInt來顯式地鍵入轉換。 –

回答

2

String上使用時,即使String只包含數字,+運算符也會連接在一起。假設你所有的字符串值都是以10爲底的,則將它們包裝在parseInt(string, 10)中。請注意,如果它是String,則還應該對products_qty執行此操作。

var previous_stock = results[0].remain_stock 
var products_qty = request.body.products_qty 

var update_data = { 
    remain_stock: parseInt(previous_stock, 10) - products_qty 
} 

var update_data2 = { 
    remain_stock: parseInt(previous_stock, 10) + products_qty 
} 
+0

謝謝....但爲什麼減法工作正常 –

+0

因爲減法運算符沒有定義,所以你的'String'被強制爲'Number'。這對性能和穩定性不利,您應該通過使用您打算使用的實際類型來避免強制。 –