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ềfalsechoNaN,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ùngNumber.isInteger()an toàn hơn.