ความแตกต่างระหว่างฟังก์ชั่น round() floor() และ ceil()
- floor() จะมีการปัดเศษลงเสมอ และ
- ceil() จะทำตรงข้ามกับ floor() คือจะมีการปัดเศษขึ้นเสมอ
- round() จะมีการปัดเศษลงหากหลักสุดท้ายมีค่าน้อยกว่า 5 และปัดเศษขึ้นหากหลักสุดท้ายมีค่าตั้งแต่ 5 ขึ้นไป (ตัวฟังก์ชั่นสามารถกำหนดหลักที่ต้องการได้ ให้ศึกษาเพิ่มเติมจากคู่มือของ PHP)
floor() | ceil() | round() | |
---|---|---|---|
3.9 | 3 | 4 | 4 |
3.5 | 3 | 4 | 4 |
3.1 | 3 | 4 | 3 |
3 | 3 | 3 | 3 |
-3.1 | -4 | -3 | -3 |
-3.5 | -4 | -3 | -4 |
-3.9 | -4 | -3 | -4 |
<?php
if (floor($time) == 3) {
// do some thing
}
การเปรียบเทียบเวลา หากต้องการให้เวลาอยู่ในช่วงที่กำหนดเท่านั้น ต้องใช้ floor() เช่นในตัวอย่าง เวลาตั้งแต่ 3.00 ถึง 3.59 เมื่อผ่าน floor() จะมีค่าเท่ากับ 3 เสมอ (ถ้าใช้ ฟังก์ชั่นอื่นจะถูกปัดเป็น 4)
<?php
// จำนวนรายการทั้งหมด
$count = 30;
// จำนวนรายการต่อหน้า
$list_per_page = 10;
// จำนวนหน้า
$pages = ceil($count / $list_per_page); // 3
ในการหาจำนวนหน้า เช่น การแบ่งหน้า จะต้องใช้ฟังก์ชั่น ceil() ดังตัวอย่าง สมมุติมีจำนวนทั้งหมด 30 รายการ หารด้วยหน้าละ 10 รายการจะได้ 3 หน้าพอดี และหากมีรายการเพิ่มเป็น 31 รายการ จะได้ว่า 31/10=3.1 ซึ่งจะได้ผลลัทธ์เป็น ceil(31/10) = 4 หากใช้ฟังก์ชั่นอื่น จำนวนหน้าจะได้เพียง 3 หน้า ซึ่งจะทำให้รายการที่ 31 ไม่ถูกแสดงผล
<?php
$price = round(3.90); // 4
$price = round(3.10); // 3
ตัวอย่างการใช้ฟังก์ชั่น round() เช่นในการคิดเงิน ซึ่งโดยทั่วไปมักจะมีการปัดเศษให้เศษสตางค์ตั้งแต่ 0.50 สตางขึ้นไป ปัดขึ้นอีก 1 บาท และเศษสตางค์ที่น้อยกว่า 50 สตางค์ให้ปัดลง (ไม่คิดเศษสตางค์)