js取整
时间: 2025-07-04 07:17:30 浏览: 13
在 JavaScript 中,有多种方式可以对数字进行取整操作。每种方法适用于不同的场景和需求,以下是一些常见的取整方式及其适用性分析:
### 使用 `Math.trunc()` 方法
`Math.trunc()` 方法会直接去除数字的小数部分,只保留整数部分,不进行四舍五入或向上/向下取整。这个方法对于正负数都表现一致[^1]。
```javascript
console.log(Math.trunc(3.7)); // 输出: 3
console.log(Math.trunc(-3.7)); // 输出: -3
```
由于 Internet Explorer 不支持该方法,因此可以使用 Polyfill 来实现兼容性:
```javascript
Math.trunc = Math.trunc || function(x) {
if (isNaN(x)) {
return NaN;
}
if (x > 0) {
return Math.floor(x);
}
return Math.ceil(x);
};
```
### 使用按位或运算符 `|`
通过将数字与 `0` 进行按位或运算,也可以实现取整效果。这种方式实际上是利用了按位运算的特性,强制将浮点数转换为 32 位带符号整数[^2]。
```javascript
let floatNum = 10 / 3;
let intNum = floatNum | 0;
console.log(intNum); // 输出: 3
```
需要注意的是,这种方式只能安全地处理范围在 ±2^31-1(即 2147483647)之间的整数[^3]。
### 使用 `Math.floor()` 和 `Math.ceil()`
- `Math.floor()` 用于向下取整,即将数字向更小的方向取整。
- `Math.ceil()` 用于向上取整,即将数字向更大的方向取整。
这两个方法在处理负数时表现不同:
```javascript
console.log(Math.floor(3.7)); // 输出: 3
console.log(Math.floor(-3.7)); // 输出: -4
console.log(Math.ceil(3.7)); // 输出: 4
console.log(Math.ceil(-3.7)); // 输出: -3
```
### 使用 `parseInt()` 函数
`parseInt()` 可以将字符串或数字转换为整数。它会忽略小数部分并返回整数部分:
```javascript
console.log(parseInt(3.7)); // 输出: 3
console.log(parseInt("3.7")); // 输出: 3
```
此方法适合从字符串中提取整数,但不适合精确控制取整行为。
### 使用 `Math.round()` 实现四舍五入
如果需要根据小数部分进行四舍五入,则可以使用 `Math.round()`:
```javascript
console.log(Math.round(3.4)); // 输出: 3
console.log(Math.round(3.5)); // 输出: 4
```
### 总结
JavaScript 提供了多种取整方式,选择哪种方法取决于具体的需求:
- 如果需要简单地去掉小数部分,请使用 `Math.trunc()` 或 `| 0` 操作。
- 如果需要向下或向上取整,请分别使用 `Math.floor()` 或 `Math.ceil()`。
- 如果需要四舍五入,请使用 `Math.round()`。
- 如果需要从字符串中提取整数,请使用 `parseInt()`。
阅读全文
相关推荐

















