ECMAScript 提供了 Math 对象作为保存数学公式、信息和计算的地方。Math 对象提供了一些辅助 计算的属性和方法。

1. Math 对象属性:

Math 对象有一些属性,主要用于保存数学中的一些特殊值。下表列出了这些属性。

Math.E Math.LN10 Math.LN2 Math.LOG2E Math.LOG10E Math.PI Math.SQRT1_2 Math.SQRT2
自然对数的基数 e 的值 10 为底的自然对数
2 为底的自然对数
以 2 为底 e 的对数
以 10 为底 e 的对数 π 的值
1/2 的平方根
2 的平方根

1. min()和 max()方法:

Math 对象也提供了很多辅助执行简单或复杂数学计算的方法。 min()和 max()方法用于确定一组数值中的最小值和最大值。这两个方法都接收任意多个参数,如 下面的例子所示:

let max = Math.max(3, 54, 32, 16);
  console.log(max);  // 54
  let min = Math.min(3, 54, 32, 16);
  console.log(min);  // 3

在 3、54、32 和 16 中,Math.max()返回 54,Math.min()返回 3。使用这两个方法可以避免使用 额外的循环和 if 语句来确定一组数值的最大最小值。 要知道数组中的最大值和最小值,可以像下面这样使用扩展操作符:

let values = [1, 2, 3, 4, 5, 6, 7, 8];
    let max = Math.max(...val);

3. 舍入方法:

接下来是用于把小数值舍入为整数的 4 个方法:Math.ceil()、Math.floor()、Math.round() 和 Math.fround()。这几个方法处理舍入的方式如下所述。

  • Math.ceil()方法始终向上舍入为最接近的整数。
  • Math.floor()方法始终向下舍入为最接近的整数。
  • Math.round()方法执行四舍五入。
  • Math.fround()方法返回数值最接近的单精度(32 位)浮点值表示。
console.log(Math.ceil(25.9));
console.log(Math.ceil(25.5));
console.log(Math.ceil(25.1));
// 26
// 26
// 26
console.log(Math.round(25.9));  // 26
console.log(Math.round(25.5));  // 26
console.log(Math.round(25.1));  // 25
console.log(Math.fround(0.4));  // 0.4000000059604645
console.log(Math.fround(0.5));  // 0.5
console.log(Math.fround(25.9)); // 25.899999618530273
console.log(Math.floor(25.9));  // 25
console.log(Math.floor(25.5));  // 25
console.log(Math.floor(25.1));  // 25

对于 25 和 26(不包含)之间的所有值,Math.ceil()都会返回 26,因为它始终向上舍入。 Math.round()只在数值大于等于 25.5 时返回 26,否则返回 25。最后,Math.floor()对所有 25 和 26(不包含)之间的值都返回 25。