JavaScript
Number Methods
toFixed
เรียนรู้ `toFixed()` สำหรับปัดเศษและกำหนดจำนวนทศนิยมของตัวเลข พร้อมข้อควรระวังที่ผลลัพธ์เป็น string
toFixed กำหนดจำนวนทศนิยมของตัวเลข
`toFixed(n)` คือ method ของ `number` ที่ปัดเศษตัวเลขให้มีทศนิยม `n` ตำแหน่ง แล้วคืนค่าเป็น string ใช้ `toFixed()` เมื่อต้องการแสดงตัวเลขให้อ่านง่าย เช่น แสดงราคา 2 ตำแหน่งทศนิยม หรือกำหนดจำนวนหลักหลังจุดทศนิยมให้เท่ากัน
const num = 3.14159;
console.log(num.toFixed(2)); // "3.14"
console.log(num.toFixed(4)); // "3.1416"
console.log(num.toFixed(0)); // "3"
console.log(typeof num.toFixed(2)); // "string" ← ระวัง!toFixed() รับ number เข้าไป ปัดทศนิยมตามที่กำหนด แล้วคืนค่าเป็น string
toFixed() คืนค่าเป็น string — ใช้คำนวณต่อไม่ได้
`toFixed()` คืนค่าเป็น string เสมอ ทำให้ไม่สามารถนำผลลัพธ์ไปคำนวณทางคณิตศาสตร์ต่อทันที ถ้าต้องการนำไปคำนวณ ต้องแปลงกลับเป็น number ด้วย `Number()` หรือ `parseFloat()` ก่อน
const price = 49.5;
const formatted = price.toFixed(2);
console.log(formatted); // "49.50"
console.log(typeof formatted); // "string"
// ❌ บวก string กับ number → string concatenation
console.log(formatted + 10); // "49.5010" ไม่ใช่ 59.5
// ✅ แปลงกลับเป็น number ก่อนคำนวณ
const backToNumber = Number(formatted);
console.log(backToNumber + 10); // 59.5- `toFixed()` คืนค่าเป็น string เสมอ — แม้จะกำหนดทศนิยม 0 ตำแหน่งก็ตาม
- ถ้าต้องการใช้ผลลัพธ์คำนวณต่อ ให้แปลงกลับด้วย `Number()` หรือ `parseFloat()`
- ใช้ `toFixed()` สำหรับแสดงผลเท่านั้น ไม่ใช่สำหรับเก็บค่าที่จะนำไปคำนวณซ้ำ
การปัดเศษของ toFixed และข้อควรระวัง
`toFixed()` ปัดเศษแบบปัดขึ้น (round half up): ถ้าเลขถัดไปมากกว่าหรือเท่ากับ 5 จะปัดขึ้น 1 นอกจากนี้ถ้ากำหนด `n` มากกว่าจำนวนทศนิยมที่มี `toFixed()` จะเติม 0 ให้ครบตามจำนวนที่กำหนด
// .5 → ปัดขึ้น
console.log((2.5).toFixed(0)); // "3"
console.log((3.5).toFixed(0)); // "4"
// ทศนิยมไม่พอ → เติม 0
console.log((5).toFixed(2)); // "5.00"
console.log((3.2).toFixed(3)); // "3.200"
// ถ้าไม่ใส่ค่า n → default = 0
console.log((4.7).toFixed()); // "5"- ทศนิยมหลักถัดไป >= 5 → ปัดขึ้น 1
- ทศนิยมหลักถัดไป < 5 → ตัดทิ้ง
- ถ้าใส่ n มากกว่าทศนิยมที่มี → เติม 0
- ถ้าไม่ใส่ n → ใช้ค่า default = 0