因此,我有以下代码从数组中提取数据并计算平均值。问题是,目前,即使平均值为3,它仍显示为3.00。我想要的是,如果需要的话,平均只能保留两位小数。代码如下:

var calculated = playerdata.map((player) => {
  const rounds = player.slice(2);

  return {
    player,
    average: average(rounds).toFixed(2),
    best: Math.min(...rounds),
    worst: Math.max(...rounds)
  };
});

function average(numbers) {
  return numbers.reduce((a, b) => a + b, 0) / numbers.length;
}

最佳答案

@Maaz的解决方案也可以,但是下面的解决方案更容易说明:

average(rounds) * 100 % 1 ? average(rounds).toFixed(2) : average(rounds)


仅当数字超过2个小数位时,此函数才会四舍五入:



f = function(a){return a * 100 % 1 ? a.toFixed(2) : a}

console.log(f(3))
console.log(f(3.1))
console.log(f(3.12))
console.log(f(3.128))

关于javascript - 仅在必要时将数字四舍五入到2位小数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44217241/

10-13 09:47