js中小数转换整数的方法


在JavaScript中,小数转换整数有几种常用方法。这里列出两种简洁高效的方式:

### 1. 使用Math.floor()

`Math.floor()` 方法会向下取整,即返回不大于一个给定数字的最大整数。


let num = 3.14;
let intNum = Math.floor(num); // 结果为3
console.log(intNum);

### 2. 使用Math.round()与条件表达式

如果你想要的是四舍五入到最接近的整数,并且只想要整数部分,可以结合`Math.round()`和一个简单的条件表达式(虽然这不是直接转换,但在某些情况下可能很有用)。但请注意,`Math.round()`会返回最接近的整数,且当小数部分恰好为0.5时,它会四舍五入到最近的偶数。

然而,如果你只是想要去掉小数部分(即向下取整,如果小数部分小于0.5),你可以这样做:


let num = 3.5;
let intNum = Math.round(num) - (num % 1 >= 0.5 ? 1 : 0); // 但这实际上是四舍五入后的调整
// 更简洁地只去掉小数部分(实际上是向下取整):
intNum = Math.round(num - 0.5); // 注意:这不是标准的四舍五入,只是展示一种技巧
// 或者更直接地,如果你只想要向下取整的效果,使用Math.floor()
intNum = Math.floor(num); // 推荐方式

console.log(intNum); // 对于3.5,这将输出3

但通常,如果你只是想要去掉小数部分,`Math.floor()` 是最直接和清晰的方法。

### 3. 位运算符(对于正数)

对于正数,你还可以使用位运算符 `|` 来实现小数到整数的转换,这实际上是通过将数字转换为32位整数(JavaScript中的Number类型是IEEE 754双精度64位浮点数)的底层表示,并丢弃小数部分来实现的。


let num = 3.14;
let intNum = num | 0; // 结果为3
console.log(intNum);

但请注意,这种方法只适用于正数,并且它实际上是通过将数字转换为32位整数(忽略小数部分)来工作的,这可能会在处理大数或负数时导致意外的结果。