การปัดเศษของตัวเลข

JavaScript:
การปัดเศษของตัวเลข

วิธีการ:

นี่คือวิธีการปัดเศษตัวเลขใน JavaScript โดยใช้ Math.round(), Math.ceil(), และ Math.floor():

let originalNumber = 2.567;

let roundedDown = Math.floor(originalNumber); // 2
let roundedUp = Math.ceil(originalNumber);    // 3
let rounded = Math.round(originalNumber);     // 3 (เนื่องจาก .567 มากกว่า .5)

console.log(roundedDown); // พิมพ์: 2
console.log(roundedUp);   // พิมพ์: 3
console.log(rounded);     // พิมพ์: 3

เพื่อกำหนดจำนวนทศนิยมให้คงที่, ใช้ toFixed():

let twoDecimals = originalNumber.toFixed(2); // "2.57" (คืนค่าเป็นสตริง)

console.log(twoDecimals); // พิมพ์: "2.57"

แปลงสตริงกลับเป็นตัวเลขด้วยเครื่องหมายบวกหนึ่งตัวหรือ Number():

let numberAgain = +twoDecimals; // 2.57

console.log(numberAgain); // พิมพ์: 2.57

ศึกษาลึกลงไป

การปัดเศษตัวเลขไม่ใช่เรื่องใหม่; มันเก่าแก่เท่ากับตัวเลขเอง ใน JavaScript, Math.round() ใช้วิธี “round half up” ในการตัดสิน: ถ้าส่วนทศนิยมเป็น 0.5, จะปัดขึ้นไปยังตัวเลขที่ใกล้เคียงที่สุด

หากต้องการควบคุมมากขึ้น, toFixed() อาจเป็นทางออกสำหรับคุณ, แต่จำไว้ว่า, มันคืนค่าเป็นสตริง การแปลงกลับเป็นตัวเลขอาจเป็นขั้นตอนเพิ่มเติมแต่ช่วยให้คุณยังคงทำงานกับประเภทตัวเลขได้

มีทางเลือกอื่นหรือไม่? ไลบรารีเช่น lodash นำเสนอ _.round(number, [precision=0]) เพื่อการควบคุมที่มีนัยสำคัญมากขึ้น หรือบริการ Intl.NumberFormat ให้รูปแบบการจัดรูปแบบความแม่นยำสูง ไม่ใช่แค่การปัดเศษเท่านั้น

พูดถึงความแม่นยำ, ระวังถึงปัญหาของจุดลอยตัวใน JavaScript 0.1 + 0.2ไม่เท่ากับ0.3` สมบูรณ์เนื่องจากวิธีที่ตัวเลขถูกเก็บ บางครั้ง, การปัดเศษอาจจำเป็นในการแก้ไขข้อผิดพลาดจากจุดลอยตัว

ดูเพิ่มเติม