2008-12-12 13 views

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; 
+0

Theo định nghĩa, 0/0 = NaN. Xem http://en.wikipedia.org/wiki/NaN. –

+0

Eh, không thấy câu trả lời của Gamecat đề cập đến câu trả lời này. –

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.