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

Cách kiểm tra số có phần thập phân hay là số nguyên trong JavaScript?

Sử dụng Number.isInteger() (ES2015) hoặc so sánh với Math.floor() / Math.trunc().

Cách 1: Number.isInteger() — Khuyến nghị (ES6+)

Number.isInteger(10);    // true
Number.isInteger(10.2);  // false
Number.isInteger(-5);    // true
Number.isInteger("10");  // false (string không phải number)

Cách 2: So sánh với Math.floor() (cũ)

function laSoNguyen(num) {
    return num === Math.floor(num);
}
// Hoặc dùng Math.trunc() (ES6)
function laSoNguyen(num) {
    return num === Math.trunc(num);
}

Ví dụ hoàn chỉnh

<!DOCTYPE html>
<html>
<body>
    <script>
        var num = 10.2;
        if (Number.isInteger(num)) {
            alert("Số nguyên");
        } else {
            alert("Số thập phân");
        }
    </script>
</body>
</html>

Lưu ý:

  • Number.isInteger() trả về false cho NaN, Infinity, string, null.
  • Math.floor() làm tròn xuống: Math.floor(-1.5) === -2.
  • Math.trunc() cắt phần thập phân: Math.trunc(-1.5) === -1.
  • Cách so sánh num === Math.floor(num) có thể sai với số rất lớn (precision loss). Dùng Number.isInteger() an toàn hơn.