2017-07-29 116 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'。这对性能和稳定性不利,您应该通过使用您打算使用的实际类型来避免强制。 –