Hướng dẫn dùng ceil trong PHP

Hướng dẫn dùng ceil trong PHP

Bài viết sau Chuẩn Seo Web sẽ hướng dẫn bạn cách dùng hàm ceil trong php và các hàm làm tròn khác. Trong php có các hàm làm tròn như ceil, floor, round. Mỗi hàm có công dụng làm tròn theo những cách khác nhau. Nên bạn sẽ dễ dàng áp dụng trong những tình huống cần xử lý. Bài viết sau mình sẽ giới thiêu bạn cách dùng hàm ceil trong php và các hàm làm tròn khác. Bài viết này thuôc chuyên mục PHP Developer.

Hướng dẫn dùng ceil trong PHP
Hàm ceil trong php và các hàm làm tròn

Hàm ceil trong php

Hàm ceil trong php là một hàm làm tròn tăng lên. Bạn xem ví dụ sau sẽ dễ hiểu hơn:

echo ceil(5.0); //kết quả: 5
echo ceil(5.1); //kết quả: 6
echo ceil(5.5); //kết quả: 6
echo ceil(5.9); //kết quả: 6

Hàm ceil trong php thường được áp dụng trong phân trang với php thuần khi tính tổng số trang với mỗi trang hiển thị số bài viết nhất định.

Hàm floor trong php

Hàm floor trong php là một hàm làm tròn xuống. Banjxem ví dụ dưới đây để hiểu hơn:

echo floor(5.0); //kết quả: 5
echo floor(5.1); //kết quả: 5
echo floor(5.5); //kết quả: 5
echo floor(5.9); //kết quả: 5

Hàm round trong php

Hàm round trong php là một hàm làm tròn có 2 tham số. Hàm round sẽ lấy kết quả giống như phép làm tròn trong toán học. Ví dụ như 3,4 sẽ đc làm tròn thành 3. 3,5 sẽ được làm trong thành 4.

round($param1, $param2)

  • $param1: là giá trị bạn muốn làm tròn
  • $param2: số chữ số thập phân bạn muốn làm tròn (giá trị mặc định là 0)

Bạn xem một số ví dụ dưới đây để hiểu rõ hơn:

echo round(5.0); //kết quả: 5
echo round(5.4); //kết quả: 5
echo round(5.5); //kết quả: 6
echo round(5.9); //kết quả: 6

echo round(5.65756, 1); //kết quả: 5.7
echo round(5.65734, 2); //kết quả: 5.66
echo round(5.65734, 3); //kết quả: 5.657

Kết Luận

Qua bài viết trên mình đã hướng dẫn bạn cách dùng hàm ceil trong php và các hàm làm tròn khác. Nếu có ý kiến hay thắc mắc gì bạn hãy để lại bình luận bên dưới. Cám ơn bạn đã theo dõi bài viết này.

Nguyễn Luân

MÌnh là Luân. Mình có 4 năm kinh nghiệm trong lập trình website và 3 năm làm về WordPress theme và plugin. Rất hy vọng có cơ hội hợp tác với mọi người. Xin cám ơn.

float ceil( float value )
float floor( float value )
float round( float value [, int precision] )

Một tình huống phổ biến là bạn muốn làm tròn số trong PHP, trong trường hợp đó bạn cần sử dụng một trong các hàm làm tròn lựa chọn của PHP: ceil(), floor()round().

Mình xin được giới thiệu tới các bạn trong bài viết này.

ceil() và floor()

Cả ceil()floor() chỉ lấy một tham số – số để làm tròn. ceil() lấy số và làm tròn nó thành số nguyên gần nhất trên giá trị hiện tại của nó, trong khi floor() làm tròn nó thành số nguyên gần nhất dưới giá trị hiện tại của nó. Hãy xem ví dụ dưới đây:

Sau khi thực thi đoạn mã trên, $ceiled sẽ là 5 và $floored sẽ là 4.

round()

Hàm khác có sẵn là round(), nhận hai tham số – số để làm tròn và số chữ số thập phân để làm tròn. Nếu một số nằm đúng nửa khoảng cách giữa hai số nguyên, round() sẽ luôn làm tròn.

Như bạn có thể thấy, 4,5 được làm tròn thành 5, trong khi 4,4999 được làm tròn thành 4.

Dòng bốn ($d) có tham số thứ hai được sử dụng, điều này cho thấy rất dễ làm tròn đến một số chữ số thập phân nhất định.

Lưu ý rằng ở dòng năm ($e), chúng ta nhận được 4.1235 khi làm tròn đến bốn chữ số thập phân, vì PHP xem xét thêm một chữ số để quyết định chữ số cuối cùng. Nghĩa là, nếu số của chúng ta là 4.12344, làm tròn đến bốn chữ số thập phân sẽ cho chúng ta 4.1234, nhưng vì chữ số thứ năm là số 5, luôn được làm tròn, thay vào đó chúng ta thấy mình có 4.1235.

Ví dụ cuối cùng ($f), là một tình huống phổ biến mà những người sử dụng round() gặp phải.

Hãy tưởng tượng bạn đang tổ chức một chuyến đi cắm trại lớn và có 50 người đã đăng ký.

Bạn cần tính xem bạn cần thuê bao nhiêu lều để cắm trại, vì vậy bạn lấy số người là 50 và chia cho sức chứa tối đa của một chiếc lều cắm trại là 8 => (50/8 = 6.25), sau đó làm tròn số để có được một số nguyên và bạn thấy kết quả là 6.

Vấn đề ở đâu? Kết quả thực tế của 50/8 là 6,25 – bạn cần sáu chiếc lều để cho 50 người nghỉ ngơi và bạn sẽ chỉ đặt 6 cái vì round() làm tròn thành 6 thay vì 7 vì nó gần hơn.

Vì bạn không thể thuê sáu chiếc lều rưỡi (6.5), bạn phải làm gì? Giải pháp rất đơn giản: trong những tình huống như thế này, bạn sử dụng ceil(). Cả ba hàm làm tròn đều hữu ích theo đúng nghĩa của chúng, vì vậy hãy nhớ cố gắng ghi nhớ tất cả chúng.

Tài liệu tham khảo

» Hàm FLOOR
» Hàm ROUND
» Hàm CEIL

Ví dụ tổng hợp:

//round()

echo round(3.4);         // 3
echo round(3.5);         // 4
echo round(3.6);         // 4
echo round(3.6, 0);      // 4
echo round(1.95583, 2);  // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2);    // 5.05
echo round(5.055, 2);    // 5.06
 
echo round(9.5, 0, PHP_ROUND_HALF_UP);   // 10
echo round(9.5, 0, PHP_ROUND_HALF_DOWN); // 9
echo round(9.5, 0, PHP_ROUND_HALF_EVEN); // 10
echo round(9.5, 0, PHP_ROUND_HALF_ODD);  // 9
 
echo round(8.5, 0, PHP_ROUND_HALF_UP);   // 9
echo round(8.5, 0, PHP_ROUND_HALF_DOWN); // 8
echo round(8.5, 0, PHP_ROUND_HALF_EVEN); // 8
echo round(8.5, 0, PHP_ROUND_HALF_ODD);  // 9    
 
/* Using PHP_ROUND_HALF_UP with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_UP);   //  1.6
echo round( 1.54, 1, PHP_ROUND_HALF_UP);   //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_UP);   // -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_UP);   // -1.5
 
/* Using PHP_ROUND_HALF_DOWN with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_DOWN); //  1.5
echo round( 1.54, 1, PHP_ROUND_HALF_DOWN); //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_DOWN); // -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_DOWN); // -1.5
 
/* Using PHP_ROUND_HALF_EVEN with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_EVEN); //  1.6
echo round( 1.54, 1, PHP_ROUND_HALF_EVEN); //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_EVEN); // -1.6
echo round(-1.54, 1, PHP_ROUND_HALF_EVEN); // -1.5
 
/* Using PHP_ROUND_HALF_ODD with 1 decimal digit precision */
echo round( 1.55, 1, PHP_ROUND_HALF_ODD);  //  1.5
echo round( 1.54, 1, PHP_ROUND_HALF_ODD);  //  1.5
echo round(-1.55, 1, PHP_ROUND_HALF_ODD);  // -1.5
echo round(-1.54, 1, PHP_ROUND_HALF_ODD);  // -1.5

//floor()

echo floor(4.3);   // 4
echo floor(9.999); // 9
echo floor(-3.14); // -4

//ceil()

echo ceil(4.3);    // 5
echo ceil(9.999);  // 10
echo ceil(-3.14);  // -3