Hướng dẫn dùng php rounding trong PHP

Hàm Round() trong php giúp chúng ta có thể làm tròn số thực theo ý muốn của mình.

Cú pháp

round($val, $precision)

Input:

  • $val: Số thực cần làm tròn
  • $precision: Độ chính xác – số chữ số thập phân

Output: Số sau khi được làm tròn

  • Số có $precision chữ số sau dấu thập phân
  • Nếu chữ số thập phần sau vị trí làm tròn có giá trị lớn hơn 5 thì số tại vị trí làm tròn được cộng thêm 1

Ví dụ hàm làm Round()

 Kết quả: 5.13
round(10.1262,3); //=> Kết quả: 10.126
round(98.35,1); //=> Kết quả: 98.4
?>

Giải thích

Số 5.1268 khi muốn làm tròn 2 chữ số thập phân ta nhận thấy chữ số ngay đằng sau vị trí làm tròn là số 6, vì số 6 lớn hơn 5 nên số chữ số đằng trước nó là 2 sẽ được làm tròn lên 3. Từ đó ta có kết quả 5.13.

Với số 10.1262 làm tròn 3 chữ số. Ta thấy chữ số ngay đằng sau vị trị làm tròn số là số 2. Số 2 bé hơn 5 nên chữ số đằng trước nó vẫn giữ nguyên là 6. Từ đó ta có kết quả 10.126

Kết luận:

Trong bài này tôi đã hướng dẫn bạn cách sử dụng hàm round() tròn php. Ngay bây giờ bạn cần ghi chép và thực hành lại bài để nắm chắc bài học.

Xin chào, sớm hẹn gặp lại!

Hàm Round() trong php giúp chúng ta có thể làm tròn số thực theo ý muốn của mình.

Cú pháp

round($val, $precision)

Input:

  • $val: Số thực cần làm tròn
  • $precision: Độ chính xác – số chữ số thập phân

Output: Số sau khi được làm tròn

  • Số có $precision chữ số sau dấu thập phân
  • Nếu chữ số thập phần sau vị trí làm tròn có giá trị lớn hơn 5 thì số tại vị trí làm tròn được cộng thêm 1

Ví dụ hàm làm Round()

 Kết quả: 5.13
round(10.1262,3); //=> Kết quả: 10.126
round(98.35,1); //=> Kết quả: 98.4
?>

Giải thích

Số 5.1268 khi muốn làm tròn 2 chữ số thập phân ta nhận thấy chữ số ngay đằng sau vị trí làm tròn là số 6, vì số 6 lớn hơn 5 nên số chữ số đằng trước nó là 2 sẽ được làm tròn lên 3. Từ đó ta có kết quả 5.13.

Với số 10.1262 làm tròn 3 chữ số. Ta thấy chữ số ngay đằng sau vị trị làm tròn số là số 2. Số 2 bé hơn 5 nên chữ số đằng trước nó vẫn giữ nguyên là 6. Từ đó ta có kết quả 10.126

Kết luận:

Trong bài này tôi đã hướng dẫn bạn cách sử dụng hàm round() tròn php. Ngay bây giờ bạn cần ghi chép và thực hành lại bài để nắm chắc bài học.

Xin chào, sớm hẹn gặp lại!

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