Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
88 / 86 / 55
Регистрация: 14.11.2015
Сообщений: 1,099

Как реализована Double.NaN != Double.NaN

07.02.2018, 12:45. Показов 1747. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Java
1
2
3
4
5
    public static void main(String[] args) {
        Float f1 = new Float(Float.NaN);
        Float f2 = new Float(Float.NaN);
        System.out.println( ""+ (f1 == f2)+" "+f1.equals(f2)+ " "+(Float.NaN == Float.NaN) );
    }
Как в Java сделали так, чтобы статическая переменная класса не была равна по ссылке сама себе? Это уровень компилятора или уровень исполнения?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.02.2018, 12:45
Ответы с готовыми решениями:

Некоторые Ответы Выводятся Как Nan, Хотя Считает Корректно, Вроде
Всем привет В коде в некоторых ответах (значение х равный дробному отрицательному числу, т.е. -3,5; -2,5; -1,5; -0,5; ) выдает nan, а...

Не получается кастить double to Double
Столкнулся с несколько интересной проблемой: компилятор заел на ошибке «error: incompatible types: Double cannot be converted to double...

Запись double[][] в ArrayList<double[][]>
Помогите пожалуйста записать массив double в ArrayList&lt;double&gt;. Дело в том что я провожу вычисления с массивом double и после через...

4
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
07.02.2018, 13:52
Цитата Сообщение от Artmal Посмотреть сообщение
Float.NaN == Float.NaN
Float.NaN имеет тип float, а не Float. И сравнение двух Float.NaN возвращает false (по правилам языка). f1.equals(f2) нарушает это правило, сравнивая битовые представления, которые идентичны для двух Float.NaN.
0
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
07.02.2018, 13:59
Цитата Сообщение от alex white Посмотреть сообщение
f1.equals(f2) нарушает это правило,
ничего оно не нарушает, в комментах класса Object есть все правила, которым должен соответствовать метод equals
0
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
07.02.2018, 14:08
Fene4ka_, Object здесь ни при чём, есть правила сравнения float, а есть таковые у Float, и они идентичны за несколькими исключениями, включая NaN
2
102 / 102 / 40
Регистрация: 24.01.2014
Сообщений: 1,242
07.02.2018, 17:10
Цитата Сообщение от alex white Посмотреть сообщение
Object здесь ни при чём, есть правила сравнения float, а есть таковые у Float, и они идентичны за несколькими исключениями, включая NaN
да, вы правы, у Float свои правила сравнения, но тем неменее, правила и там описаны:

Java
1
2
3
4
     * <li>If {@code f1} and {@code f2} both represent
     *     {@code Float.NaN}, then the {@code equals} method returns
     *     {@code true}, even though {@code Float.NaN==Float.NaN}
     *     has the value {@code false}.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.02.2018, 17:10
Помогаю со студенческими работами здесь

Неопределенность NaN
Добрый день. Нужно написать программу нахождения суммы элементов ряда для задоного N. Ряд имеет вид: ((-1)^lg(k))/k. Диапазон . Мой...

Почему на выходе всегда NaN
import static java.lang.Math.pow; import static java.lang.Math.sin; import static java.lang.Math.cos; import static...

Обработка исключений при NaN, Infinity, by zero
Здравствуйте! Подскажите, пожалуйста, как сделать обработку исключений при этих значениях. Типа: try { num = num/2;//если эта...

Как округлить double
Задача: Все элементы массива поделить на значение наибольшего элемента этого массива. Решение Задача состоит из двух подзадач: 1)...

Как работает double?
Вопрос вроде простой, но в Интернете информацию я, как ни искал, не нашел. Почему такая инициализация переменной работает: double...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru