2017-07-29 9 views
2

NodeJsプロジェクトを実行しています。私はその問題を解決する方法.................このproblem.Subtractionが正常に機能している。しかしほかの問題を作成しているExpressJで正しく動作しない場合、減算が正しく機能する場合

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'になります。これはパフォーマンスと安定性が悪いため、実際のタイプを使用して強制を避ける必要があります。 –

関連する問題