Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Math.trunc() trong JavaScript: Cắt phần thập phân

Math.trunc(x) (ES6) loại bỏ phần thập phân, chỉ giữ phần nguyên — không làm tròn, không quan tâm dấu âm/dương.

So sánh với Math.floor/ceil/round

xMath.truncMath.floorMath.ceilMath.round
1.41121
1.61122
-1.4-1-2-1-1
-1.6-1-2-1-2
0.490010
-0.490-100

Ví dụ

<script>
  document.write(Math.trunc(1.414) + '<br>');   // 1
  document.write(Math.trunc(0.49) + '<br>');     // 0
  document.write(Math.trunc(8.9) + '<br>');      // 8
  document.write(Math.trunc(-1.414) + '<br>');   // -1
  document.write(Math.trunc(-0.49) + '<br>');    // 0
  document.write(Math.trunc(-8.9) + '<br>');     // -8
  
  // Cũng chấp nhận string số
  document.write(Math.trunc('123.456') + '<br>'); // 123
</script>

Polyfill (ES5)

if (!Math.trunc) {
  Math.trunc = function(x) {
    return x < 0 ? Math.ceil(x) : Math.floor(x);
  };
}
// Hoặc bitwise (chỉ 32-bit signed int):
function trunc32(x) { return x | 0; } // Nhanh nhưng giới hạn ±2^31-1

Lưu ý

  • Trả về NaN nếu input không chuyển thành số được.
  • Không thay đổi đối số gốc.
  • Dùng cho: loại bỏ decimal part khi tính index, pixel, pagination.

Cách khác cắt phần thập phân

// Bitwise OR (fast, 32-bit only)
~~3.14;        // 3
3.14 | 0;      // 3
-3.14 | 0;     // -3

// parseInt (string based, chậm hơn)
parseInt(3.14); // 3 — nhưng parseInt('-3.14') = -3, parseInt('3.9') = 3