วันพฤหัสบดีที่ 16 กุมภาพันธ์ พ.ศ. 2555

การปัดเศษขึ้น เป็นเลขจำนวนเต็ม ของ Access VBA

วันก่อนผมเขียนโปรแกรมสำหรับพิมพ์ใบปะหน้าซองข้อสอบ และต้องการคำนวณจำนวนกล่องที่ใช้ในการบรรจุข้อสอบ วิธีการคือ เอาจำนวนแผ่นกระดาษเป็นตัวตั้ง และหารด้วยจำนวนกระดาษในกล่องแต่ละขนาดที่สามารถบรรจุกระดาษได้ เช่น กล่องขนาดใหญ่ บรรจุกระดาษได้ 2,500 แผ่น ถ้ามีกระดาษ 5,000 แผ่น ก็ต้องใช้กล่อง 2 กล่อง

ทีนี้ ถ้าในกรณีที่มีกระดาษ 2,600 แผ่น  ก็จะเหลือเศษไม่ถึงครึ่ง ถ้าใช้การปัดเศษธรรมดา ก็จะได้เป็น 2 กล่อง แต่ความจริงแม้จะเหลือเศษนิดหน่อยก็ต้องใช้กล่องอีกกล่องหนึ่ง ดังนั้นจึงต้องมีการปัดเศษขึ้นเป็นจำนวนเต็ม ไม่ว่าจะเหลือเศษเท่าไรก็ตาม

Access ไม่มีฟังก์ชันการปัดเศษขึ้นเสมอ ถ้าจะใช้ฟังก์ชัน Round() ก็จะไม่ได้ผลที่ต้องการ

อย่างนี้ต้องใช้ฟังก์ชัน int() แต่มีวิธีการเขียนเสียใหม่ เพื่อให้ได้เศษปัดขึ้นเสมอ เช่น 22 หารด้วย หารด้วย 3 จะได้ เท่ากับ 7.33 ปัดเศษ เป็น 8

สูตรมีดังนี้

-int(-ตัวตั้ง/ตัวหาร)

ตัวอย่าง

22 หารด้วย 3 จะได้ค่าเป็น  7.33 ถ้าปัดเศษธรรมดา จะได้ 7 แต่ถ้าต้องการให้ได้ 8 ต้องเขียน -int(-22/3) ซึ่งถ้าพิมพ์ใน immediate window จะได้ผลดังภาพ



ฟังก์ชัน Round()

การปัดเศษธรรมดา ให้ใช้ฟังก์ชัน Round() ตามปกติ โดยมีรูปแบบดังนี้
                              
                                           Round(ตัวเลขที่มีทศนิยม, จำนวนตำแหน่งทศนิยม)

ตัวอย่าง
                    round(15.55,1)   ผลที่ได้คือ   15.6
                    round(15.52,1)   ผลที่ได้คือ   15.5
                    round(15.56,1)   ผลที่ได้คือ   15.6



1 ความคิดเห็น:

  1. ขอบคุณครับ รอดตายแล้ว เขียนแล้วมาติดแหงกอยู่ตรงนี้พอดี
    ขอบคุณอย่างมากมายครับ ถ้าไม่ได้อ่านตรงนี้สงสัยว่าคงจะต้องงมโข่งอีกหลายวันละครับ

    ตอบลบ