Phép chia số nguyên trong Java là gì?
Phép chia trong Java diễn ra bình thường như phép chia thông thường trong toán học hay ngoài đời thực. Tuy nhiên, nó chỉ loại bỏ phần còn lại. Ví dụ: nếu bạn chia 9 cho 2, thương số là 4 và số dư là 1.
Ví dụ 1 [Số dư là 0]
Phép chia số nguyên trong Java hoạt động hoàn hảo cho tất cả các trường hợp số chia hết cho số bị chia (số nguyên chia cho x số nguyên). Câu trả lời là một số nguyên và kiểu dữ liệu số nguyên có thể chứa nó mà không bị tràn. Do đó không có mất dữ liệu. Ví dụ: hãy xem đoạn mã sau.
public class IntegerDivision {
public static void main(String[] args) {
int dividend = 100;
int divisor = 5;
int quotient = dividend / divisor;
//Dividend completely divides the divisor
System.out.println(dividend + " / " + divisor + " = " + quotient);
dividend = 143;
divisor = 11;
quotient = dividend / divisor;
//Dividend completely divides the divisor
System.out.println(dividend + " / " + divisor + " = " + quotient);
}
}
đầu ra
100/5 = 20
143/11 = 13
Ví dụ 2 [Số dư không phải là 0]
Đối với tất cả các trường hợp chia mà số dư không bằng 0, kết quả cuối cùng sẽ bị chia nhỏ thành số nguyên chia hết lớn nhất (9/2 = 4). Điều này sẽ được thể hiện trong ví dụ sắp tới. Có thể đôi khi bạn cần thương số thực ở dạng thập phân. Trong trường hợp đó, bạn có thể sử dụng kiểu dữ liệu float hoặc double. Tuy nhiên, nếu bạn muốn làm tròn thương đến số nguyên gần nhất, bạn có thể thực hiện như sau.
public class IntegerDivision {
public static void main(String[] args) {
int dividend = 9;
int divisor = 2;
int quotient = dividend / divisor;
// Case I - Dividend does not divide the divisor completely
// The quotient is chopped / truncated
System.out.print("Integer division \t\t" );
System.out.println(dividend + " / " + divisor + " = " + quotient);
// Case II - Mathematical or real life division
// Use float or double data type to get the actual quotient
double actualQuotient = (double)dividend / divisor;
System.out.print("Mathematics division \t\t" );
System.out.println((double)dividend + " / " + divisor + " = " + actualQuotient);
// Case III - Integer Division with rounding off
// the quotient to the closest integer
long roundedQuotient = Math.round((double)dividend / divisor);
System.out.print("Round off int division \t\t" );
System.out.println((double)dividend + " / " + divisor + " = " + roundedQuotient);
}
}
đầu ra
Phép chia số nguyên 9/2 = 4
Toán phép chia 9.0/2 = 4.5
Làm tròn phép chia nguyên 9.0/2 = 5
Giải trình
Trường hợp I và Trường hợp II là tự giải thích. Đối với Trường hợp III, bạn có thể chia nhỏ nó theo các bước sau.-
Đầu tiên, bạn cần chuyển đổi cổ tức thành gấp đôi.
-
Thực hiện phép chia Java int thông thường.
-
Làm tròn thương số bằng phương thức Math.round() .
-
Sử dụng kiểu dữ liệu dài để lưu trữ thương số được làm tròn.
-
Có bạn đi! Bạn có đầu ra mong muốn là thương số.
GO TO FULL VERSION