Tôi đã biên dịch mã cố gắng thêm một số và Double.NaN sai. Tôi tự hỏi nếu nó ném một ngoại lệ mà không bị bắt? Có ai biết tình hình đó được xử lý như thế nào không?
Cảm ơn.Trong Java, điều gì sẽ xảy ra nếu bạn sử dụng Double.NaN trong một hoạt động?
6
A
Trả lời
6
Thêm số vào NaN cho NaN. Nó không phải là dự kiến sẽ gây ra một ngoại lệ. Tôi hiểu rằng điều này tuân theo IEEE 754.
0
public static void main(String args[])
{
Double d = Double.NaN + 1.0;
System.out.println(d);
}
in Double.Nan. Bất cứ ai có thể giải thích việc thực hiện nguồn?
public static final double POSITIVE_INFINITY = 1.0/0.0;
public static final double NEGATIVE_INFINITY = -1.0/0.0;
public static final double NaN = 0.0d/0.0;
1
Để trả lời câu hỏi Steve B:
POSITIVE_INFINITY là số postive lớn nhất mà bạn có thể lưu trữ nếu bạn có không gian lưu trữ không giới hạn. Nếu không có sự sang trọng này, chúng ta phải sử dụng một công trình xây dựng như 1.0/0.0, một công việc tốt. Tương tự với NEGATIVE_INFINITY nhưng sau đó là số âm lớn nhất.
NaN thường được định nghĩa là 0.0/0.0 vì không có số như 0/0 để hoàn toàn đủ điều kiện cho NaN.
Theo định nghĩa, 0/0 = NaN. Xem http://en.wikipedia.org/wiki/NaN. –
Eh, không thấy câu trả lời của Gamecat đề cập đến câu trả lời này. –