js中的取整方法

696 阅读2分钟

在 JavaScript 中,有多种方式可以用来取整数。以下是一些常见的方法:

  1. Math.round()

Math.round() 函数可以对一个数进行四舍五入。

jsCopy code
Math.round(3.6); // 结果为 4Math.round(3.3); // 结果为 3
  1. Math.floor()

Math.floor() 函数会向下取整,也就是返回小于或等于一个给定数的最大整数。

jsCopy code
Math.floor(3.6); // 结果为 3Math.floor(3.3); // 结果为 3
  1. Math.ceil()

Math.ceil() 函数会向上取整,也就是返回大于或等于一个给定数的最小整数。

jsCopy code
Math.ceil(3.6); // 结果为 4Math.ceil(3.3); // 结果为 4
  1. parseInt()

parseInt() 函数会将一个字符串参数解析成为一个指定基数的整数 (数学系统的基础)。在没有提供基数的情况下,JavaScript 将根据特定条件将字符串转换为整数。它会丢弃小数部分。

jsCopy code
parseInt("3.6"); // 结果为 3parseInt("3.3"); // 结果为 3
  1. 按位或运算符

在 JavaScript 中,按位或运算符 | 可以用来进行取整操作。其实,对任何数字进行 | 0 操作,效果和 Math.floor() 函数类似,只是当数值为负数时,两者的结果会有所不同。

jsCopy code
3.6 | 0; // 结果为 33.3 | 0; // 结果为 3
-3.3 | 0; // 结果为 -3

对于负数,Math.floor() 和按位或运算符 | 的行为是不同的。

在 JavaScript 中,Math.floor() 函数会向下取整,也就是返回小于或等于一个给定数的最大整数。而按位或运算符 | 对于负数则会进行向零取整。

让我们来看一下它们的区别:

jsCopy code
Math.floor(-3.3); // 结果为 -4,因为 -4 是小于 -3.3 的最大整数
-3.3 | 0; // 结果为 -3,因为 -3 是大于 -3.3 的最小整数(即向零取整)

Math.floor() 在对负数取整时会更趋向于负无穷,而按位或运算符则会趋向于零。所以在使用这两种方法时,需要注意你的需求和这两者的差异。

  1. toFixed(n)

toFixed() 方法会把 Number 四舍五入为指定的小数位数的数字字符串。例如:

jsCopy code
let num = 100.456001;
console.log(num.toFixed(2)); // 输出 "100.46"

在上述例子中,toFixed(2) 将数字 num 四舍五入到小数点后两位。请注意 toFixed() 方法返回的是一个字符串,而不是一个数字。

  1. toPrecision(n)

toPrecision() 方法会把 Number 格式化为指定的长度的数字字符串。例如:

jsCopy code
let num = 99.456001;
console.log(num.toPrecision(5)); // 输出 "99.456"

在上述例子中,toPrecision(5) 将数字 num 格式化为长度为 5 的字符串。这里的长度包括了小数点前的数字、小数点以及小数点后的数字。

同样的,toPrecision() 方法返回的也是一个字符串,而不是一个数字。

具体使用哪一种取决于你的需求,如果你需要控制小数点后的位数,那么 toFixed() 会更适用。如果你需要控制数字的总长度,那么 toPrecision() 更为合适。