Vì sao phép tính chia cho một số 0.0 không xảy ra ngoại lệ trong Java?

Đây cũng là một câu hỏi khá hay khi chúng ta lập trình với Java.Cũng như đi phỏng vấn cũng có thể gặp. Vậy Vì sao phép tính chia cho một số 0.0 không xảy ra ngoại lệ trong Java ???

Vì sao phép tính chia cho một số 0.0 không xảy ra ngoại lệ trong Java

Cùng nhìn vào một ví dụ bên dưới khi chia mẫu số với một số nguyên bằng 0 nhé :

package pk5;

public class Demo2Exception {
	public static void main(String[] args) {
		int so1 = 10;
		int so2 = 0;
		int kq = so1/so2;
		System.out.println(kq);
	}
}

Với đoạn code trên, chương trình của chúng ta sẽ xảy ra ngoại lệ vì mẫu số = 0. Cùng nhìn vào quy trình chạy code của hình bên dưới:

Vì sao phép tính chia cho một số 0.0 không xảy ra ngoại lệ trong Java (2)

Kết quả:

Vì sao phép tính chia cho một số 0.0 không xảy ra ngoại lệ trong Java (2)

Bây giờ cùng xem chương trình thứ 2 với phép toán chia một số = 0 kiểu số thực (float,double):

package pk5;

public class Demo2Exception {
	public static void main(String[] args) {
		float so1 = 10;
		float so2 = 0;
		float kq = so1/so2;
		System.out.println(kq);
	}
}

Kết quả : Infinity

Vậy vì sao khi chia mẫu số với một số thực (float,double) bằng 0 trong Java lại không xảy ra ngoại lệ và  có thể chia được??? Mời bạn đọc trả lời ở phần comment bên dưới.

Trả lời : 

Hãy tưởng tượng một con số vô cùng gần bằng không.Biến sẽ tiếp cận số không cho một khoảng cách bằng 0 nhưng không bao giờ là chính xác.Giả sử số đó cần chính xác cho Java để đại diện lấy số đó để chia, nó cho lên và làm tròn thành 0.0 bởi vì không có một lựa chọn tốt.
Bất kỳ số nào thường chia cho một số cực nhỏ thành số không là về cơ bản, vô hạn (+-Infinity) . Hãy thử : 10 / (10^-100) = 0.0.
0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
x