Программирование на языке Java

         

Бесконечность и NaN



Бесконечность и NaN

В спецификации IEEE для чисел с вещественной точкой есть два значения типа double, которые трактуются специальным образом: бесконечность и NaN (Not a Number - неопределенность). В классе Double есть тесты для проверки обоих этих условий, причем в двух формах - в виде методов (статических), которым значение double передается в качестве параметра, и в виде методов, проверяющих число, хранящееся в объекте класса Double.

  • islnfinite(d) возвращает true, если абсолютное значение указанного числа типа double бесконечно велико.
  • islnfinite() возвращает true, если абсолютное значение числа, хранящегося в данном объекте Double, бесконечно велико.
  • isNaN(d) возвращает true, если значение указанного числа типа double неопределено.
  • isNaN() возвращает true, если значение числа, хранящегося в данном объекте Double, неопределено.

Очередной наш пример создает два объекта Double, один с бесконечным, другой с неопределенным значением. class InfNaN { public static void main(String args[]) { Double d1 = new Double(1/0.); Double d2 = new Double(0/0.); System.out.println(d1+":"+d1.isInfinite()+","+d1.isNaN()); System.out.println(d2+":"+d2.isInfinite()+","+d2.isNaN()); } }

Ниже приведен результат работы этой программы: С:\> java InfNaN Infinity: true, false NaN: false, true



Содержание раздела