【问题标题】:How To Total Sum Along With Comma Values in Angularjs?如何在Angularjs中对逗号值求和?
【发布时间】:2017-03-13 10:44:10
【问题描述】:

我在我的应用程序中使用 MEAN 堆栈,并将 AngularJS 作为我的前端。如何 total sumcomma value 一起使用,实际上我得到了 total sum valuecomma value 不是 calculated...My Plunker 例如 :- 没有逗号 amt值总和答案我得到 3850.20,然后 commaamount payment 值总和我得到 2.00,期望像 3850.20 ,如果有人知道解决方案对我们的帮助,谢谢......

我的控制器:-

    .filter('sumOfValue', function () {
    return function (data, key) {
        debugger;
        if (angular.isUndefined(data) && angular.isUndefined(key))
            return 0;        
        var sum = 0;

        angular.forEach(data,function(v,k){
            sum = sum + parseFloat(v[key]);
        });        
        return sum.toFixed(2);
    }
})

我的 HTML:-

<td >{{mani.amt}}</td>

  <td >{{mani.amount_payment }}</td>

我的数据:-

    {
"_id": "5816f4fad0be79f809519f98",
"user": {
"_id": "57400c32bd07906c1308e2cf",
"displayName": "mani selvam"
},
"__v": 0,
"created": "2016-10-31T07:38:34.999Z",
"remarks": "-",
"status": "pending",
"amt": "1925.10",
"cheque_currency": "Rs",
"cheque_value": "300",
"amount_payment": "1,925.10",
"debitnote_no_payment": "3",
"supplier_name": "karikalan",
"buyer_name": "Manidesigns"
},

{
"_id": "5816f4fad0be79f809519f98",
"user": {
"_id": "57400c32bd07906c1308e2cf",
"displayName": "mani selvam"
},
"__v": 0,
"created": "2016-10-31T07:38:34.999Z",
"remarks": "-",
"status": "pending",
"amt": "1925.10",
"cheque_currency": "Rs",
"cheque_value": "300",
"amount_payment": "1,925.10",
"debitnote_no_payment": "3",
"supplier_name": "karikalan",
"buyer_name": "Manidesigns"
},

我创建了 Plunker 供参考:- Plunker

【问题讨论】:

  • 重复:stackoverflow.com/questions/29077210/… 你正在使用两个本地人,'.'和“,”作为您的货币的分隔符。从服务器返回相同的货币格式
  • 感谢您的宝贵回答,能否请您更新我的 plunker 以了解解决方案.....
  • 嘿嗨,我得到了像 1,925.10 这样的计算答案......所以不能在 api 中改变它......所以你能提供确切的解决方案......我已经知道你的解决方案了。 ..所以请查看我的plunker并帮助我们....谢谢..如何计算表格中的逗号值?....

标签: html css angularjs meanjs


【解决方案1】:

我认为您应该避免在格式化后存储/传递数字,因此您应该将数字 "amount_payment": "1,925.10" 传递为 "amount_payment": "1925.10"(不带逗号),或者甚至更好地作为浮点数:"amount_payment": 1925.10,然后根据您的视图进行格式化它与 NumbertoLocalString() 函数一起使用:(1925.10).toLocaleString() 甚至 ("1925.10").toLocaleString()。在您的情况下,您可以在求和时删除逗号:

angular.forEach(data,function(v){
  sum = sum + parseFloat(v[key].replace(',', ''));
}); 

你也可以使用 reduce() 函数来求和:

app.filter('sumOfValue', function () {
  return function (data, key) {
    // debugger;
    if (!data || !data[0] || !data[0][key]) {
      return 0; 
    }

    var sum = data.reduce(function(sum, val) {
      return sum + parseFloat(val[key].replace(',', ''));
    }, 0);

    return sum.toFixed(2);
  }
})

plunker:http://plnkr.co/edit/8Hllaw254sBO2nbaZlKQ?p=preview

【讨论】:

  • 感谢您的宝贵意见,能否请提供更新的 plunker 以及了解确切的解决方案....非常感谢...
  • 在我的答案中添加了 plunker 链接
猜你喜欢
  • 1970-01-01
  • 2017-04-08
  • 1970-01-01
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多