2016-06-19 3 views
-1

Почему JVM дает разные результаты в этих двух случаях, почему он не дает «Бесконечность» в коде 1?Сравнение версий Java (0/0) и (0/0.0)

Код 1:

class A { 
    public static void main(String args[]) { 
    System.out.println(0/0); 
    } 
} 

Выход code1: Исключение в потоке "основного" java.lang.ArithmeticException

Код 2:

class B { 
    public static void main(String args[]) { 
    System.out.println(0/0.0); 
    } 
} 

Выход Кодекса2: Бесконечности

ответ

-1

System.out.println(0/0); не то же самое, как System.out.println(0/0.0); только потому, что первая операция производятся между целыми числами и может возвращать целое число ...

для 2-я операция, в которой вы используете Double, которая может производить такие вещи, как positive or negative Infinity, NaN (not a number) и т. д.