Math.trunc() 是 JavaScript 中截断小数部分、向零取整的内置方法:对正负数均直接去掉小数,如 Math.trunc(12.8) 返回 12、Math.trunc(-12.8) 返回 -12,不四舍五入,不改变符号。

Math.trunc() 是 JavaScript 中专门用于“截断”数值的内置方法:它直接去掉小数部分,只保留整数部分,不进行四舍五入、不向零取整以外的方向偏移,也不受负数符号影响——对正数和负数都统一朝零方向“砍掉”小数。
Math.trunc 的行为特点
它和 Math.floor、Math.ceil、Math.round 都不同:
- 对正数(如
12.8)→ 返回12 - 对负数(如
-12.8)→ 返回-12(不是-13) - 对
0.9、-0.9都返回0 - 对
NaN返回NaN,对Infinity和-Infinity返回原值
基本用法示例
直接传入数字即可:
Math.trunc(4.9); // 4<br>Math.trunc(-4.9); // -4<br>Math.trunc(0.1); // 0<br>Math.trunc(-0.1); // 0<br>Math.trunc(123); // 123(整数不变)
与替代写法的对比
在没有 Math.trunc 的旧环境(如 IE),可用以下方式模拟:
立即学习“Java免费学习笔记(深入)”;
value >= 0 ? Math.floor(value) : Math.ceil(value)value < 0 ? Math.ceil(value) : Math.floor(value)- 或更简洁的位运算(仅适用于安全整数范围内的数):
value | 0(但注意:对-12.9也得-12,看似等效,实际对大数或NaN行为不同)
推荐优先使用 Math.trunc,语义清晰、行为确定、可读性强。
常见适用场景
适合需要“纯粹去小数”而非“取整”的逻辑:
- 提取时间戳中的秒数(如
Math.trunc(timestamp / 1000)) - 计算页码时确保不向上进位(如
Math.trunc(total / pageSize)) - 处理用户输入的浮点数值并转为整型显示(如价格展示前的整元部分)
不复杂但容易忽略。


















