2015-07-09 6 views
0

Почему это деление целого числа на 0 дает ArithmeticException, тогда как деление ненулевого double или float на 0 печатает Infinity. Также деление int 0 на 0 дает ArithmeticException, тогда как деление двойного или float 0 на 0 дает NaN (не число).Деление на ноль в java

public class First 
{ 
    public static void main(String[] args) 
    { 
     System.out.println(10/0); //Arithmetic Exception 
     System.out.println(10.0/0); //Prints Infinity 

    } 
} 
+0

Повторяющийся вопрос.Пожалуйста, ответьте http://stackoverflow.com/a/12954429/1638718 – ozgur

ответ

1

Java следующим образом IEEE с плавающей точкой стандартов/методов, а также тех, включают бесконечность [+ и -] в качестве значения, которое может быть вычислено с, и NaN, как представление для результатов, которые не являются числом.

(И очевидно, что эти стандарты с плавающей точкой не имеют аналогов для целочисленной арифметики.)

2

Деление плавающей точкой 0.0 дает NaN или +/- Inf.

Деление на целое число 0 не распространяется на IEEE 754 и генерирует исключение - (т. Е. Поскольку int не может представлять NaN или Inf).

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