ใช้เมธอด Math.floor() ตรวจสอบว่าเลขมีทศนิยมหรือไม่ เปรียบเทียบค่าเดิมกับค่าที่ปัดทิ้งทศนิยม
ตัวอย่าง
<html>
<head>
<title>JavaScript Numbers</title>
</head>
<body>
<script>
var num = 10.2;
if (num == Math.floor(num)) {
alert("Whole Number");
} else {
alert("Decimal Number");
}
</script>
</body>
</html>
วิธีอื่นๆ (Modern & Better)
| วิธี | โค้ด | คำอธิบาย |
|---|---|---|
| Number.isInteger() (ES6) | Number.isInteger(num) | true ถ้าเป็น integer, false ถ้า decimal/NaN/Infinity |
| Modulo operator | num % 1 === 0 | เศษจากการหาร 1 เป็น 0 = integer |
| Bitwise OR | (num | 0) === num | แปลงเป็น 32-bit int แล้วเปรียบเทียบ (รวดเร็วแต่จำกัดขนาด) |
ตัวอย่าง Number.isInteger()
Number.isInteger(10); // true Number.isInteger(10.2); // false Number.isInteger(-5); // true Number.isInteger(NaN); // false Number.isInteger(Infinity); // false
แนะนำ: ใช้ Number.isInteger() เพราะอ่านง่าย มาตรฐาน ES6 และจัดการ edge cases ถูกต้อง