我试图添加以下内容,但它会连续并返回一个字符串。
var nums = [1.99, 5.11, 2.99];
var total = 0;
nums.forEach(function(i) {
total += parseFloat(i).toFixed(2);
});
是的,我需要它返回/添加小数。不确定该怎么做
答案 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]);