其他人如何添加浮动和非浮动?

时间:2016-05-19 00:23:55

标签: javascript google-chrome

如何将所有mybag数组值添加到total_w,其中mybag的值为floatint

  var mybag = []; 
  mybag[0] = 20.50; 
  mybag[1] = 10.13;
  mybag[3] = 0;

  //so total_w should be 30.63  not: 20.5010.13

  var total_w = 0;
  var comma = '';
  for (key in mybag) {
    active_mybag = active_mybag + comma + parseFloat(mybag[key]).toFixed(2);
    total_w = Math.round(total_w + parseFloat(mybag[key]).toFixed(2));
    comma = ",";    
  }

  console.log('> ', total_w, active_mybag);

2 个答案:

答案 0 :(得分:2)

您的代码存在许多问题,因此这里不是一系列评论,而是答案。

var mybag = [ /* bunch of values */];
var total = +mybag.reduce((a, b) => a + +b, 0).toFixed(2);

将使用数字或数字字符串。 Fiddle。这是一个分解:

reduce从0开始。

' a'参数是累加器。

' b' parameter是该迭代的数组值。

b由一元加运算符

转换为数字

b被添加到a并返回

总和减少为2位精度的数字字符串

通过前面的加号转换回数字

答案 1 :(得分:1)

  var active_mybag = [];  

  var total_w = mybag.reduce(function(acc,e){

    // Value of array to float
    e = parseFloat(e);

    // Collect text representations of rounded value
    active_mybag.push( e.toFixed(2) );

    // Subtotal
    return acc + e;

  },0 ).toFixed(2); // Convert sum to string representation

  active_mybag = active_mybag.join(',');

[https://jsfiddle.net/ot1p37mv/]