如何在Javascript中四舍五入一个数字?

2022-08-30 01:55:39

我想使用Javascript来四舍五入一个数字。由于数字是货币,我希望它像这些示例(2个小数点)一样四舍五入:

  • 192.168 => 192.20
  • 192.11 => 192.20
  • 192.21 => 192.30
  • 192.26 => 192.30
  • 192.20 => 192.20

如何使用Javascript实现这一点?内置的Javascript函数将根据标准逻辑对数字进行四舍五入(小于和大于5以向上舍入)。


答案 1
/**
 * @param num The number to round
 * @param precision The number of decimal places to preserve
 */
function roundUp(num, precision) {
  precision = Math.pow(10, precision)
  return Math.ceil(num * precision) / precision
}

roundUp(192.168, 1) //=> 192.2

答案 2

虽然有点晚,但是,可以为此目的创建一个可重用的javascript函数:

// Arguments: number to round, number of decimal places
function roundNumber(rnum, rlength) { 
    var newnumber = Math.round(rnum * Math.pow(10, rlength)) / Math.pow(10, rlength);
    return newnumber;
}

将函数调用为

alert(roundNumber(192.168,2));