2008-12-12 4 views

ответ

6

Добавление числа в NaN дает NaN. Ожидается, что это не вызовет исключения. Я понимаю, что это соответствует IEEE 754.

0
public static void main(String args[]) 
{ 
    Double d = Double.NaN + 1.0; 
    System.out.println(d); 
} 

отпечатки Double.Nan. Может ли кто-нибудь объяснить исходную реализацию?

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

По определению 0/0 = NaN. См. Http://en.wikipedia.org/wiki/NaN. – 2008-12-12 15:16:03

1

Чтобы ответить на вопрос Steve Б:

POSITIVE_INFINITY является крупнейшим Postive число, которое вы можете сохранить, если у вас есть неограниченное пространство для хранения. Без этой роскоши мы должны использовать конструкцию типа 1.0/0.0, которая отлично справляется с работой. То же самое касается NEGATIVE_INFINITY, но затем наибольшее отрицательное число.

NaN обычно определяется как 0.0/0.0, потому что нет такого числа, как 0/0, что отлично подходит для NaN.

 Смежные вопросы

  • Нет связанных вопросов^_^