— Привіт, Аміго!
Сьогодні я розповім тобі ще про кілька цікавих речей у Java.
Нескінченність.
У Java тип double має спеціальні значення для понять «плюс нескінченність» і «мінус нескінченність». Позитивне число, розділене на 0.0, дає «плюс нескінченність», а від'ємне – «мінус нескінченність».
Цим поняттям відповідають спеціальні константи типу Double:
Код | Опис |
---|---|
|
плюс нескінченність |
|
мінус нескінченність |
— І що це дійсно працює?
— Так. Дивись:
double inf = Double.POSITIVE_INFINITY;
System.out.println(inf); // Нескінченність
System.out.println(inf + 1); //Нескінченність+1 ==Нескінченність
System.out.println(inf + 10); //Нескінченність+10 ==Нескінченність
System.out.println(inf*-1); //Рівно «мінус нескінченність»
Double.NEGATIVE_INFINITY
Infinity
Infinity
Infinity
-Infinity
— Справді працює. А якщо у нас виходить невизначеність? Наприклад, якщо ми з нескінченності віднімаємо нескінченність?
— Для цього Java має ще одне поняття – NaN – Not-a-Number (не число).
Його використовують у різних ситуаціях:
1) Рядок конвертуємо в число, а в ній є літери. Відповідь – NaN
2) Нескінченність мінус нескінченність. Відповідь — NaN
3) Багато інших ситуацій, де у відповіді чекають число, а виходить невідомо що.
— А які операції можна робити з Infinity та NaN?
— З NaN все дуже просто. Будь-яка операція, де є NaN, дає в результаті NaN.
А з нескінченністю можна і попрацювати:
Вираз | Результат |
---|---|
|
0 |
|
±Infinity |
|
±Infinity |
|
Infinity |
|
NaN |
|
NaN |
|
NaN |
|
NaN |
— Логічно. Дякую, Ріша.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ