2017-08-08 70 views
0

我有以下代码:麻烦与算术运算符在AngularJS

$scope.showTotal = function() { 
    $scope.pT = []; 
    var iT = 0; 
    for (var i = 0; i < $scope.od.length; i++) { 
     console.log($scope.od[i]['bpr']); 
     iT += $scope.od[i]['bpr']; 
     // also tried this -> iT = iT + $scope.od[i]['bpr'] 
    } 
    $scope.pT.push({iTotal: iT}); 
    console.log($scope.popupTotals); 
    $scope.showPopupNow = true; 
} 

但我不知道为什么它不工作。 如果bpr是例如50和43.1034,那么它在控制台中记录输出如下,iTotal:"050.000043.1034"

我是JavaScript新手,我直接使用AngularJS启动它。 所以请帮助我在JS中的算术运算符。 谢谢。

+0

为什么你复制我++在年底的整数? –

+0

删除它。 @AlexanderAnikeev –

+0

你有什么类型的对象$ scope.order [i] ['baseprice']?如果它字符串,你必须parseFloat。 –

回答

2
$scope.showTotal = function() { 
    $scope.popupTotals = []; 
    var itemtotal = 0; 
    for (var i = 0; i < $scope.order.length; i++) { 
     console.log($scope.order[i]['baseprice']); 
     itemtotal += parseFloat($scope.order[i]['baseprice']); 
     // parseFloat will convert string to number and add the number instead of concatenating the strings 
    } 
    $scope.popupTotals.push({itembasetotal : itemtotal}); 
    console.log($scope.popupTotals); 
    $scope.showPopupNow = true; 
} 
+0

非常感谢。有效。 –

+0

@RahulJain - 欢迎光临! – Aks1357

1

你正在递增我内循环。删除重复的我,我怀疑你的$scope.order[i]['baseprice']是不是一个整数。因此,将其转换为使用parseFloat

$scope.showTotal = function(){ 
     $scope.popupTotals = []; 
     var itemtotal = 0; 
     for (var i = 0; i<$scope.order.length; i++){ 
      console.log($scope.order[i]['baseprice']); 
      itemtotal += parseFloat($scope.order[i]['baseprice']); 
      //also tried this -> itemtotal = itemtotal + $scope.order[i]['baseprice'] 
      //i++; No need to increment here 
     } 
     $scope.popupTotals.push({itembasetotal : itemtotal}); 
     console.log($scope.popupTotals); 
     $scope.showPopupNow = true; 
    } 
+0

仍然是相同的结果。 –

+0

你的$ scope.order [i] ['baseprice']是一个字符串吗?尝试使用parseFloat更新答案 – Vivz