Я хочу понять, почему константы POSITIVE_INFINITY
и NEGATIVE_INFINITY
определены только для типов данных с плавающей запятой (float
, double
и их обертки),
public static final float POSITIVE_INFINITY = 1.0f / 0.0f;
public static final float NEGATIVE_INFINITY = -1.0f / 0.0f;
но не для целых типов данных (byte
, short
, int
, long
и их обертки). Это влияет на результат операции деления на разные типы данных. Например:
Для интегральных типов:
int z = 10/0;
System.out.println(z);
Output:
Exception in thread "main" java.lang.ArithmeticException: / by zero
at TesterClass.main(TesterClass.java:16)
Для типов с плавающей запятой:
double z = 10/0.0;
System.out.println(z);
Output:
Infinity