JavaScript加法/求和循环

时间:2015-05-21 05:12:31

标签: javascript arrays decimal

我试图添加以下内容,但它会连续并返回一个字符串。

    var nums = [1.99, 5.11, 2.99];

    var total = 0;

    nums.forEach(function(i) {
      total += parseFloat(i).toFixed(2);
    });

是的,我需要它返回/添加小数。不确定该怎么做

4 个答案:

答案 0 :(得分:7)

如果您想要更实用的方法,还可以使用Array.reduce

var nums = [1.99, 5.11, 2.99];
var sum = nums.reduce(function(prev, cur) {
  return prev + cur;
}, 0);

最后一个参数0是可选的起始值。

答案 1 :(得分:4)

如果您不存储浮点字符串,则不需要使用parseFloat(i)来解析字符串中的浮点数。您可以将其重写为:

var nums = [1.99, 5.11, 2.99];

var total = 0;

nums.forEach(function(i) {
  total += i;
});

var fixed = total.toFixed(2);
console.log(fixed);

var nums = [1.99, 5.11, 2.99];

var total = 0;

for(var i = 0; i < nums.length; i++){
  total += nums[i];
}

var fixed = total.toFixed(2);
console.log(fixed);

答案 2 :(得分:1)

var nums = [1.99, 5.11, 2.99];

    var total = 0;

    nums.forEach(function(i) {
      total += parseFloat(i);
    });
    alert(total.toFixed(2));

是的,带小数

答案 3 :(得分:1)

尝试使用递归选项reduce:

    function sum(inputNums) {
      var nums = inputNums;
      var total = nums.reduce(function(previousValue, currentValue, index, array) {
        return previousValue + currentValue;
      });
      alert('' + total);
    }
    sum([1.99, 5.11, 2.99]);