
— Привет, Амиго!
Сегодня я расскажу тебе еще про несколько интересных вещей в 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 |
— Логично. Спасибо, Риша.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ